编程语言
首页 > 编程语言> > 我指示更高版本的NodeJS时,“ npm install”为什么不会失败?

我指示更高版本的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