帮助在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并进行比较。 阅读节点的模块系统