第一次找不到模块
我正在为我的桌面应用程序使用node-webkit
引擎。 这是我的文件的结构:
app/ |- scripts/ |- librecraft.js |- index.html |- package.json |- libre.js
应用程序/ index.html的
<!DOCTYPE html> <!-- .... --> <script>var libre = require('./libre.js');</script> <script src="scripts/librecraft.js"></script>
应用程序/脚本/ librecraft.js
libre.doSomething();
应用程序/ libre.js
exports.doSomething = function () { return 42 };
问题
当我运行nw.exe
并nw.exe
打开app/index.html
时, node-webkit
找不到./libre.js
模块。 但是,当我刷新(与正确的刷新button)它神奇的作品。 为什么?
如果你想知道为什么当你刷新页面的时候,你必须知道你的nodejs
文件在应用程序的整个生命周期中被加载一次。 当应用程序启动时,将返回值( doSomething
)更改为其他内容,保存文件并刷新页面; 你会注意到返回的值是旧的。
看来你的node.js
文件在你调用的时候还没有被加载。 打开dev console
并检查出错信息(如果有的话)。
我会build议更新你的librecraft.js
如下:
//librecraft.js var libre = require('../libre.js'); var val = libre.doSomething(); // console.log(val);
希望这个帮助。
- 当使用node.js函数时,最好不要直接在HTML中包含或写入脚本。 此外,这种技术的缺点是,脚本(你可能想要做一些后台任务)将重新加载每次你重新加载页面。
- 改用'node-main'。 这里: https : //github.com/rogerwang/node-webkit/wiki/node-main
- 一个简单的事情要记住:node-webkit应用程序不是一个网站:)