Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 巴贝尔找不到插件_Javascript_Webpack_Ecmascript 6_Babeljs_Babel Loader - Fatal编程技术网

Javascript 巴贝尔找不到插件

Javascript 巴贝尔找不到插件,javascript,webpack,ecmascript-6,babeljs,babel-loader,Javascript,Webpack,Ecmascript 6,Babeljs,Babel Loader,我有一个应用程序模块和公共模块,由多个应用程序模块共享 - app - src - package.json - webpack.config.json - .babelrc - common - lib - package.json - .babelrc app/package.json dependencies: { common: "../common" }, devDependencies: { ...othe deps, "babel-plug

我有一个应用程序模块和公共模块,由多个应用程序模块共享

- app
  - src
  - package.json
  - webpack.config.json
  - .babelrc
- common
  - lib
  - package.json
  - .babelrc
app/package.json

dependencies: {
  common: "../common"
},
devDependencies: {
  ...othe deps,
  "babel-plugin-transform-object-rest-spread": "^6.23.0",
}
common/package.json

devDependencies: {
  ..other deps,
  "babel-plugin-transform-object-rest-spread": "^6.23.0",
}
公共代码在es6中,需要在应用程序中传输,因此webpack.config.js包含

{
  test: /\.js/,
  exclude: /node_modules\/(?!(ui-common|ui-server-common)\/).*/,
  loader: 'babel-loader',
},
如果我在公共模块中运行纱线安装,然后在应用程序模块中运行纱线安装,则一切正常。它复制了公共模块的完整node_模块,因此它包含了所有开发部门,包括babel插件转换对象rest扩展

如果我从公共模块中删除节点_模块,运行Thread install app module,则只复制产品依赖项,并且在app/node_模块/common/node_模块中缺少babel插件转换对象rest spread。然后我得到

Module build failed: ReferenceError: Unknown plugin "transform-object-
rest-spread" specified in "/Users/blaf/projects/management-
ui/ui-common/.babelrc" at 0, attempted to resolve relative to 
"/Users/blaf/projects/management-ui/ui-common"

因为在app/node_modules/common/node_modules中缺少babel插件转换对象rest spread。该软件包已经在应用程序/节点_模块中,所以应该没有问题,但巴贝尔希望它在公共软件包中?如何告诉babel使用根级依赖关系

这听起来像是预期的行为。Babel查找与
.babelrc
文件相关的插件,因此如果它们不在
common
中,则无法工作。有没有办法告诉Babel查看顶级DEP?Node.js尝试在顶层查找依赖关系(如果它在适当位置缺失)。问题是,Thread/npm会消除重复数据,插件只在顶层结束。