我正在研究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/
谢谢