为什么React-Admin的构建输出会有所不同?

时间:2019-07-12 08:51:54

标签: reactjs caching npm webpack react-admin

我正在处理一个网站项目,该项目使用React-Admin作为前端框架。到目前为止,我已经使用Webpack将所有JS代码构建到一个名为main.js的文件中。现在,我正在阅读有关使用webpack进行代码拆分和缓存的信息。关于它的文章很多,我尝试了一种为应用程序,运行时和供应商(node_modules)设置单独文件的方法。我还向webpack.config.js中的文件名添加了一个内容哈希:

output: {
    filename: '[name].[contenthash].js'
}

很快,我注意到了奇怪的行为:在连续构建之后,当没有代码更改或没有安装新的软件包时,供应商的文件获得了不同的内容哈希,因此总是为供应商创建了一个新文件。最初,我检查了哈希创建是否由于某些原因而失败,但是没有:供应商的文件内容实际上在每次构建中都发生了更改。

比较两个连续的供应商文件后,我注意到内容实际上是相同的,但是顺序不同。由于某些原因,仅软件包react-admin相关的输出受到影响。我通过使用this site上的说明将项目中的每个npm软件包拆分为单独的文件来确认这一点。我运行了三个连续的版本,结果有一个用于应用程序的文件,一个用于运行时的文件,每个npm软件包(不包括react-admin)一个文件,其中生成了三个文件。

因此,每一次React-admin的构建输出都会有所不同。知道为什么会发生这种情况,对此我能做些什么?构建代码只会再次生成那些确实已更改的文件,这是很好的。就像我在不安装任何应用程序的情况下更改JS代码一样,供应商文件应该相同。

以下是与react-admin相关的两个连续构建输出的比较:https://www.diffchecker.com/cWJGce68

0 个答案:

没有答案