在npm中忽略devDependencies?

时间:2015-03-09 02:38:20

标签: json node.js npm

我是两个npm模块的作者,都有devDependencies。 第一个是simpleDbLayer。安装它:

npm install simpledblayer

下载的package.js文件的devDependencies与git repository中的内容相匹配:

//...
"devDependencies": {
  "simpleschema": "0.3.x"
},
//...

不幸的是,nodeunit test.js会失败,因为simpleschema没有安装(应该是这样)。从手册:

  

默认情况下,npm install将安装列为依赖项的所有模块。使用--production标志,npm将不会安装devDependencies

中列出的模块

甚至更奇怪(这是我受影响最大的奇怪问题)是我的另一个模块,simpledblayer-mongo:

npm install simpledblayer-mongo

在他安装了package.js文件时,我有:

"devDependencies": {},

哪个与实际发布的内容不匹配,which contains

"devDependencies": {
  "simpleschema": "0.3.x",
  "simpleschema-mongo": "0.3.x"
},

毋庸置疑,没有安装simpleschema和simpleschema-mongo。

我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

是的,默认情况下它会安装devDependencies,但仅适用于您的项目(package.json中的devDependencies),而不是npm存储库中的模块。

如果您想要依赖项的devDependencies,请通过将--dev传递给npm命令来强制它:

npm install simpledblayer --dev

此外,当您将环境变量NODE_ENV设置为production时,它也不会安装devDependencies(甚至不是package.json中的那些)。