我有一个带有 main.js
的 node-webkit 项目。在最顶端,我有
var updater = require("./updater.js");
我在与 main.js
相同的目录中有一个名为 updater.js
的文件。当我运行应用程序时,我收到错误
Uncaught Error: Cannot find module './updater.js'
updater.js
里面只有一行:
module.exports = "Hello!";
我不知道为什么它不能要求该文件。我见过另一个项目做同样的事情。我可以从同一个 main.js
中 require
常规 npm
模块。
最佳答案
这是因为,当您使用 node-webkit 运行您的应用程序 (main.js) 时,根(工作)目录是 index.html 所在的位置,因此“./”指的是该目录而不是其中的目录您从中请求模块的文件在其中。
您可以使用 resolve method in 'path' node module 轻松解决此问题并将其输出提供给工作文件中的 require 方法
只需执行以下操作:
var path = require('path');
var updater = require( path.resolve( __dirname, "./updater.js" ) );
编辑:关于全局 Node 对象 '__dirname'(和其他)的信息可以找到 here .
关于javascript - Node.js 不能要求同一目录中的 .js 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26311577/