[英]Conditional load polyfills using webpack with chunkhash
我已按照此處的說明僅在舊的瀏覽器中有條件地加載polyfills文件,並且index.html中包含以下腳本:
<script>
const modernBrowser = (
'fetch' in window &&
'assign' in Object
);
if (!modernBrowser) {
const scriptElement = document.createElement('script');
scriptElement.async = false;
scriptElement.src = '/polyfills.js';
document.head.appendChild(scriptElement);
}
</script>
但是隨后在生產中,我們將文件移動到js
文件夾,並在名稱中添加chunckhash
以避免發現問題。 這就是webpack的輸出配置:
module.exports = {
entry: {
polyfills: './src/pollyfills.js',
app: './src/main.js'
},
output: {
path: config.build.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash].js'),
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
}
}
問題:這將生成一個polyfills文件,例如js/polyfills.620f3ed184b15f38c3f9.js
/polyfills.js
,但是在腳本上我正在加載不存在的/polyfills.js
。 scriptElement.src
后如何正確設置scriptElement.src
的值以指向正確的文件?
您可以使用html-webpack-plugin來提供chunkhash文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.