我正在使用Webpack构建我的React项目,并使用Firebase托管部署它。它是一个SPA,index.html
加载一个单独的JS包,一切都很好。
除此之外,我从某些用户那里得到了这个错误:
SyntaxError:意外的标记
<
档案https://tribeez.com/aa298947341ff919a5feecdc7367a6145a4a7d87.js第1行 [匿名]中的第1栏
这意味着JS包返回了一些HTML,当文件不存在时会发生这种情况,从而返回我index.html
的内容。
我的firebase.json
非常基本:
{
"hosting": {
"public": "dist",
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
所以我在思考,一定是访问者的浏览器试图获取旧版本的JS包时,但这怎么可能发生呢?它如何加载旧版本的index.html
(然后从其缓存中加载)但是也无法从其缓存加载其相关的JS包?
我是否应该告诉Webpack始终使用相同的文件名创建JS包并让Firebase Hosting处理缓存?或者我应该以不同的方式处理这个问题吗?