使用Lerna开发用于Create React App的模块时,编译时间很慢

时间:2019-06-22 22:38:40

标签: reactjs create-react-app lerna react-scripts

我正在研究React样板,并决定将某些组件模块化,使它们成为我们可以包含的私有npm软件包。

在生产中,这些模块化程序包可以正常工作,但是我们现在需要设置开发环境以实际开发这些程序包(现在它们不再存在于样板中)。

最初,我在使用npm link和peerDependencies时遇到问题(某些模块具有其他模块的peerDepenency),这很麻烦,因为我们遇到了与react和styled-components副本相同的问题。

在这里Lerna介入,我们决定使用Lerna,这样我们就可以提升并利用lerna链接转换功能来解决重复的依赖项问题……并且有效!

我们在根目录中有样板,在/ packages目录中有模块。

因此,我们从根目录开始运行npm,应用程序在浏览器中启动,一切似乎都正常运行。

我们现在面临的问题是,当我们对模块之一进行更改并为该组件运行npm run build时,更改生效需要几分钟(这太可怕了)。

不是花费很长时间的构建,而是它的react-scripts编译。...

有人对此有任何经验吗?我有一种感觉,我们做错了什么。任何帮助将不胜感激!

这是我其中一个组件的npm run build的输出: `

[BABEL] Note: The code generator has deoptimised the styling of /Users/jonnycarter/code/scaffold/packages/flightjs-utilities/build/index.js as it exceeds the max of 500KB.

Hash: e6d702f8e3ec3e4274d9

Version: webpack 4.35.0

Time: 11756ms

Built at: 23/06/2019 18:23:30

   Asset      Size  Chunks                    Chunk Names

index.js  1.82 MiB       0  [emitted]  [big]  main

Entrypoint main [big] = index.js

[0] external "react" 42 bytes {0} [built]

[3] ../flightjs-utilities/build/index.js 1.24 MiB {0} [built]

 [10] external "styled-components" 42 bytes {0} [built]

 [12] external "react-dom" 42 bytes {0} [built]

 [14] (webpack)/buildin/global.js 472 bytes {0} [built]

[186] (webpack)/buildin/module.js 497 bytes {0} [built]

[187] /Users/jonnycarter/code/scaffold/node_modules/moment/locale sync 

^\.\/.*$ 3 KiB {0} [optional] [built]

[188] ./src/index.js + 34 modules 118 KiB {0} [built]

`

  | ./src/index.js 619 bytes [built]
  | ./src/hooks/useAuth.js 205 bytes [built]
  | ./src/hooks/usePermission.js 268 bytes [built]
  | ./src/hooks/useProfile.js 5.67 KiB [built]
  | ./src/hooks/useChangePassword.js 6.56 KiB [built]
  | ./src/hooks/usePermissionCheck.js 3.45 KiB [built]
  | ./src/hooks/useAxiosRefresh.js 4.72 KiB [built]
  | ./src/hooks/usePasswordReset.js 7.08 KiB [built]
  | ./src/hooks/useLogin.js 5.73 KiB [built]
  | ./src/hooks/useForgotPassword.js 6.01 KiB [built]
  |     + 25 hidden modules
+ 279 hidden modules
  

警告配置   尚未设置“模式”选项,Webpack将为此值回退到“生产”状态。将“模式”选项设置为“开发”或“生产”以启用每个环境的默认设置。   您也可以将其设置为“ none”以禁用任何默认行为。了解更多:https://webpack.js.org/configuration/mode/

     

警告资产大小限制:以下资产超过了建议的大小限制(244 KiB)。   这可能会影响网络性能。   资产:     index.js(1.82 MiB)

     

警告入口点大小限制:以下入口点的合并资产大小超过了建议的限制(244 KiB)。这可能会影响网络性能。   入口点:     主(1.82 MiB)         index.js

     

Webpack性能建议中的警告:   您可以使用import()来限制捆绑包的大小,也可以要求确保延迟加载应用程序的某些部分。   有关更多信息,请访问https://webpack.js.org/guides/code-splitting/

谢谢

0 个答案:

没有答案