webpack资源热更新,访问更新的js资源路径问题

注:真心希望有经验的人士来回答问题,某些朋友不知道出于什么目的随便答一句,然后这个问题优先级降低,就沉没了不再有人回答,已经遇到好几次这种情况了,当然,对于别的朋友的问题,我也会慎重作答。

目前在尝试webpack的热更新,使用的是webpack2,自己对其理解不深刻,所以先多说一下背景:

由于现在我生成的文件用了hash或chunkhash,并且自己写了一个插件每次webpack的时候自动更新html文件中引入的路径。

output: {
        path: path.join(__dirname, 'public/javascripts'),
        filename: 'output.[hash].js',
        publicPath:'http://localhost:7700/',
},

html中文件引入路径会被自动更新:

<script src="./javascripts/common.5b52a2495300fe7e9191.js"></script>
<script src="./javascripts/output.5b52a2495300fe7e9191.js"></script>

或者用绝对路径:

<script src="http://localhost:7700/javascripts/common.d2448c49eb08b484cca0.js"></script>
<script src="http://localhost:7700/javascripts/output.d2448c49eb08b484cca0.js"></script>

自己写的插件就是取得stats.compilation.chunks中的内容并且用文件读写正则替换的方式更新。

但是问题来了,如果我用热更新,发现没有生成对应的新文件,但是在插件中通过stats.compilation.chunks还是能取到内容的,所以我的js文件路径被更新到了一个实际上并不存在的值。

经过查阅发现webpack热更新的资源是在内存中的,如果这个时候用原来的js路径,却也访问不到更新内容。

我现在不知道如何访问这种热更新的资源。想知道热更新的时候路径该怎么写? 我也好配合修改自己的插件做自动化。

谢谢,不知道说明白了没有。。。

阅读 2.8k
1 个回答

dev-server环境下publicPath试下设为 /

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题