我指示更高版本的NodeJS时,“ npm install”为什么不会失败?
作者:互联网
我想在NodeJS项目中强制使用NodeJS和NPM的确切版本.这是我的package.json:
{
"name": "nodesandbox",
"version": "0.0.1",
"dependencies": {
"less": "*"
},
"engines": {
"node": "0.10.25"
}
}
当我运行nvm ls时,我得到以下输出:
v0.2.6
v0.7.12
v0.9.6
v0.10.12
v0.10.15
v0.10.21
current: v0.10.24
当我运行npm install时,它可以正常运行,但是我希望它失败.我遵循了来自此链接[1]的说明,这就是为什么我认为在engines对象中设置节点版本应该起作用,但遗憾的是它不起作用的原因.
[1] http://blog.nodejitsu.com/package-dependencies-done-right/#node-dependency-in-apps
解决方法:
看来仅在从另一个位置获取软件包时才检查引擎依赖项:
[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"})
如果engineStrict设置为true:
[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"}
如果您仔细阅读了the manual,则可能会清楚为什么(实际上我对此不是100%的肯定):
相比
npm install
(in package directory, no arguments):Install the dependencies in the local node_modules folder.
与
npm install <folder>
:Install a package that is sitting in a folder on the filesystem.
第一个声明安装依赖项,第二个声明安装软件包.
标签:node-js,npm,javascript,node-modules 来源: https://codeday.me/bug/20191122/2056042.html