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

我有一个包( babel-preset-es2015-webpack ),依赖于babel-preset-es2015babel-preset-es2015有依赖babel-plugin-transform-es2015-modules-commonjs

我如何要求babel-plugin-transform-es2015-modules-commonjs以确保它与我的babel-present-es2015依赖关系使用的是同一个包?

简单地做:

 require('babel-plugin-transform-es2015-modules-commonjs'); 

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

如果您不想使用@Nocturno指出的shrinkwrap,那么您也可以简单地要求依赖关系的特定path:

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

我从来没有使用过插件,但是像上面这样的东西应该可以工作。

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