帮助在node.js中需要一个npm模块

时间:2011-06-24 05:13:27

标签: javascript node.js npm

我觉得我在这里错过了一些非常基本的...

所以我用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库所需的工作要多得多。我在这做错了什么?我认为在应用程序中安装模块意味着我没有必要使用环境变量或路径吗?

2 个答案:

答案 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