我用Lerna
构建了monorepo。它具有以下结构:
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
:
node_modules/utils
文件夹并将其进行转换; webpack watch
的参数,以便它将检测两个软件包中的更改但是我不喜欢上面的解决方案,它对我来说看起来很脏。
可能还有一些更优雅的解决方案?
或者我也应该将webpack.config添加到utils
包中,并以某种方式将其用作库?如果我没记错的话,Webpack具有这种功能。
谢谢
答案 0 :(得分:0)
为了能够在utils包中使用es6 / es7代码(此代码 软件包应该以某种方式进行翻译);
如果您真的想将utils保留为单独的软件包,只需将babel配置为与CRA应用分开移植即可。您可以使用babel cli进行此操作,下面是如何执行此操作的示例:https://github.com/babel/example-node-server
当utils发生变化时,自动对主模块进行热更新 包装;
您配置Webpack手表声音的想法正确。文件here
您可能最终会得到2块手表:babel转译utils软件包,以及用于构建和捆绑CRA应用程序的webpack。