我觉得我在这里错过了一些非常基本的...
所以我用npm install somelib
安装了一个npm库。根据我的阅读,我应该能够简单地做一个
var somelib = require('somelib');
但它找不到任何东西。我的应用程序根目录下有一个node_modules
目录,但它似乎没有找到它。
我试过了require.paths.push('node_modules')
,但没有用。似乎唯一有效的是:
require.paths.unshift('.');
var somelib = require('node_modules/somelib/lib/somelib');
这让我觉得这比加载npm库所需的工作要多得多。我在这做错了什么?我认为在应用程序中安装模块意味着我没有必要使用环境变量或路径吗?
答案 0 :(得分:4)
somelib
可能没有main
中定义的package.json
文件,或者错误地引用了somelib
文件。如果main
没有directories.lib
但有require('somelib/thefile.js')
,那么您可以改为somelib
。
如果require('coffee-script')
是用coffeescript编写的,而您的应用不是,则首先需要js2coffee
。
更新:,因为{{1}}是coffeescript,我要跟你一起去做后者。
答案 1 :(得分:1)
使用特定的模块名称而不是“somelib”可能会有所帮助......但请检查包的package.json
文件。显示require.paths
并进行比较。阅读节点的module system