如何获得另一个依赖的依赖?

Gaj*_*jus 9 node.js npm

我有一个babel-preset-es2015-webpack依赖的package()babel-preset-es2015.babel-preset-es2015有依赖性babel-plugin-transform-es2015-modules-commonjs.

我如何要求babel-plugin-transform-es2015-modules-commonjs确保它与我的babel-present-es2015依赖项所使用的包相同?

简单地做:

require('babel-plugin-transform-es2015-modules-commonjs');
Run Code Online (Sandbox Code Playgroud)

将在NPM3设置中工作(假设没有其他依赖项需要不同版本babel-plugin-transform-es2015-modules-commonjs),但在NPM2中不起作用.

wjo*_*sto 1

如果您不想使用shrinkwrap@Nocturno 所指出的方式,您也可以简单地要求依赖项的特定路径:

require('<path-to-node_modules>/babel-preset-es2015-webpack/node_modules/babel-plugin-transform-es2015-modules-commonjs');
Run Code Online (Sandbox Code Playgroud)

我自己从未使用过这些插件,但类似上面的东西应该可以工作。

另一种选择是锁定babel-preset-es2015-webpack到特定版本,然后确定babel-plugin-transform-es2015-modules-commonjs其 package.json 中列出的版本并将其添加到您的 package.json 中。然后就可以使用require('babel-plugin-transform-es2015-modules-commonjs');NPM2和NPM3中的方法了。