我在以下版本的Linux上使用Node v 4.4.2
[davea@mydevbox mydir]$ uname -a
Linux mydevbox.mydomain.com 1.1.2-45.38.amzn1.x86_64 #1 SMP Wed Mar 16 17:15:34 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
我从tarball安装了node版本。运行脚本时出现此错误
[davea@mydevbox mydir]$ node myscript.js
Validation Complete
module.js:327
throw err;
^
Error: Cannot find module './namegen.js'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/home/davea/Automate-04-01-2016/js/Optimus.js:6:10)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
我很困惑这意味着什么,但更困惑的是我需要做什么来解决它。谢谢你的建议,-戴夫
编辑:我试着用你建议的方法安装模块,但是得到了同样的错误。查看安装和重新运行我的脚本的输出
[davea@mydevbox ~]$ npm install namegen
[email protected] node_modules/namegen
[davea@mydevbox ~]$
[davea@mydevbox ~]$ cd mydir
[davea@mydevbox mydir]$ node myscript.js
Validation Complete
module.js:327
throw err;
^
Error: Cannot find module './namegen.js'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/home/davea/mydir/js/Optimus.js:6:10)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
最佳答案
是否检查了节点模块的namegen模块?它是用这个目录名创建的。同时查找https://www.npmjs.com/package/namegen,此模块没有文档,并且提供的github源链接已断开。
必须手动安装此模块才能修复此错误:
npm install namegen
如果要将其添加为devDependency,请添加-D标志。
错误的意思是,在代码中的某个地方,您的had line require('namegen')和“namegen”模块没有作为依赖项的一部分找到。
完成安装后,启动package.json所在的工作目录
node
。在REPL模式下运行以下代码:require('namegen').toString();
您应该看到要使用的
namegen
包的代码。如果使用
require('./namegen')
引用包,则该操作将不起作用。你应该把它改成require('namegen')
。