190*_*Man 8 javascript node.js npm node-modules
我想在我的 NodeJS 项目中强制执行 NodeJS 和 NPM 的确切版本。这是我的 package.json:
{
"name": "nodesandbox",
"version": "0.0.1",
"dependencies": {
"less": "*"
},
"engines": {
"node": "0.10.25"
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行时,nvm ls我得到这个输出:
v0.2.6
v0.7.12
v0.9.6
v0.10.12
v0.10.15
v0.10.21
current: v0.10.24
Run Code Online (Sandbox Code Playgroud)
当我运行时npm install它工作正常,但我希望它失败。我已按照此链接 [1] 中的说明进行操作,这就是为什么我认为在引擎对象中设置节点版本应该可行,但遗憾的是它不起作用。
[1] http://blog.nodejitsu.com/package-dependencies-done-right/#node-dependency-in-apps
看起来engine只有在从另一个位置获取包时才会检查依赖项:
[timwolla@/tmp/test2]npm install ../test
npm WARN engine nodesandbox@0.0.1: wanted: {"node":"0.10.30"} (current: {"node":"v0.10.26","npm":"1.4.3"})
Run Code Online (Sandbox Code Playgroud)
如果engineStrict设置为真:
[timwolla@/tmp/test2]npm install ../test
npm ERR! notsup Unsupported
npm ERR! notsup Not compatible with your version of node/npm: nodesandbox@0.0.1
npm ERR! notsup Required: {"node":"0.10.30"}
npm ERR! notsup Actual: {"npm":"1.4.3","node":"v0.10.26"}
Run Code Online (Sandbox Code Playgroud)
如果您仔细阅读手册,可能会很清楚原因(实际上我并不是 100% 确定):
相比
npm install(在包目录中,没有参数):在本地 node_modules 文件夹中安装依赖项。
和
npm install <folder>:安装位于文件系统文件夹中的软件包。
第一个声明安装依赖项,而第二个声明安装包。
| 归档时间: |
|
| 查看次数: |
2328 次 |
| 最近记录: |