帮助在node.js中需要一个npm模块
我觉得我在这里错过了一些非常基本的…
所以我用npm install somelib
安装一个npm库。 从我读过的,我应该可以简单地做一个
var somelib = require('somelib');
但它没有find任何东西。 我的应用程序的根目录中有一个node_modules
目录,但似乎没有find它。
我试过require.paths.push('node_modules')
但它没有帮助。 似乎工作的唯一的事情是这样的:
require.paths.unshift('.'); var somelib = require('node_modules/somelib/lib/somelib');
这让我觉得这是比我实际需要加载一个npm库更多的工作。 我在这里做错了什么? 我认为在应用程序中安装模块意味着我不必与环境variables或pathfutz很多?
somelib
可能没有在package.json
定义的main
文件,或者它被错误地引用。 如果somelib
没有main
但是有一个directories.lib
那么你可以使用require('somelib/thefile.js')
来代替。
如果somelib
是用somelib
编写的而你的应用程序不是,那么你需要首先require('coffee-script')
。
更新:因为js2coffee
是coffeescript,我要和你一起去做后者。
具有特定的模块名称而不是“somelib”可能会有所帮助,但请检查包的package.json
文件。 显示require.paths
并进行比较。 阅读节点的模块系统