babel-preset-es2016需要babel-runtime的同伴,但没有安装

我意识到npm不再安装对等体依赖关系,但是当我手动安装时,为什么仍然会收到警告?

➜ npm install babel-runtime -g /usr/local/lib └─┬ babel-runtime@6.6.1 └── core-js@2.2.1 ➜ npm install babel-preset-es2016 -g /usr/local/lib ├── babel-preset-es2016@6.0.8 └── UNMET PEER DEPENDENCY babel-runtime@^6.6.1 npm WARN babel-preset-es2016@6.0.8 requires a peer of babel-runtime@^6.6.1 but none was installed. 

编辑

如果我在本地安装(按照下面的build议),我不会收到警告:

 ➜ test npm i babel-runtime@\^6.6.1 test@1.0.0 /home/jdifool/work/test ├── babel-preset-es2016@6.0.8 ├── babel-runtime@6.6.1 └─┬ babelify@7.2.0 └─┬ babel-core@6.7.4 ├─┬ babel-code-frame@6.7.4 │ └── babel-runtime@5.8.38 ├─┬ babel-generator@6.7.2 │ └── babel-runtime@5.8.38 ├─┬ babel-helpers@6.6.0 │ └── babel-runtime@5.8.38 ├─┬ babel-messages@6.7.2 │ └── babel-runtime@5.8.38 ├─┬ babel-register@6.7.2 │ └─┬ babel-runtime@5.8.38 │ └── core-js@1.2.6 ├── babel-runtime@5.8.38 ├─┬ babel-template@6.7.0 │ └── babel-runtime@5.8.38 ├─┬ babel-traverse@6.7.4 │ └── babel-runtime@5.8.38 ├─┬ babel-types@6.7.2 │ └── babel-runtime@5.8.38 └─┬ babylon@6.7.0 └── babel-runtime@5.8.38 

为什么?

这是相当详细的。 只需安装所需的软件包

 $ npm i babel-runtime@^6.6.1 -g 

在全局范围内安装,因为您的预设也在全局范围内,请重试。

更新 (通过@JohnDifool):似乎警告只显示全局安装。

当我遇到这个问题时,通过更新npm,清除npmcaching,然后再次运行npm install命令来解决问题。 但是,我将详细讨论一些问题。

更新npm

首先,我尝试使用npm update -g npmnpm update -g npm ,但是抛出了一个错误:

 npm ERR! addLocal Could not install /private/var/folders/_n/vgvdlrpj64l_g98d_dxs5pd40000gp/T/npm.80873/package 

我可以通过使用命令npm install -g npm@latest成功更新, 如GitHub用户bronzeiii所build议的那样 。

在重新运行npm install之前进行清理

 rm -rf node_modules npm cache clean 

最后一步

npm install