我是两个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。
我错过了什么吗?
答案 0 :(得分:2)
是的,默认情况下它会安装devDependencies,但仅适用于您的项目(package.json
中的devDependencies),而不是npm存储库中的模块。
如果您想要依赖项的devDependencies,请通过将--dev
传递给npm命令来强制它:
npm install simpledblayer --dev
此外,当您将环境变量NODE_ENV设置为production时,它也不会安装devDependencies(甚至不是package.json
中的那些)。