1

我有使用Lerna. 它具有以下结构:

packages
  - create-react-app-example
  - utils

create-react-app-example就像create-react-app产生的一样。即它使用 webpack 来编译 ES6/ES7 代码,对文件更改等进行热模块替换;

utils包只有 1 个具有一些实用功能的文件。并且这个功能是在create-react-app-example包里面使用的;它不使用 Webpack、Babel 或任何其他工具;

所以,一切都很简单。

但是我很难尝试配置舒适的开发环境。

所以我想要的东西很少:

  • 能够在utils包内使用 es6/es7 代码(这个包的代码应该以某种方式转译);
  • 包发生变化时主模块自动热更新utils

我唯一想到的是webpack.config.js调整create-react-app-example

  • 更改 babel loader 的设置,因此它不会排除node_modules/utils文件夹并将其转译;
  • 并更改参数,webpack watch因此它将检测两个包中的更改

但我不喜欢上面的解决方案,它对我来说看起来很脏。

可能有一些更优雅的解决方案?

或者我也应该将 webpack.config 添加到utils包中并以某种方式将其用作库?如果我没记错的话,Webpack 有这样的功能。

谢谢

4

1 回答 1

0

能够在 utils 包中使用 es6/es7 代码(这个包的代码应该以某种方式转译);

如果你真的想将 utils 保留为一个单独的包,只需配置 babel 使其与 CRA 应用程序分开编译即可。您可以使用babel cli执行此操作,这里是如何执行此操作的示例:https ://github.com/babel/example-node-server

当 utils 包发生变化时自动热更新主模块;

您配置 webpack watch 的想法听起来不错。文档在这里

您可能最终会得到 2 个 watch:babel 转译 utils 包,以及 webpack 用于构建和捆绑 CRA 应用程序。

于 2018-12-29T20:33:48.600 回答