gpt4 book ai didi

javascript - 如何从 index.html 访问 webpack 生成的 js 文件

转载 作者:行者123 更新时间:2023-11-30 15:02:51 26 4
gpt4 key购买 nike

我有一个提供模板 index.html 的 Flask 应用程序,该模板又访问由 webpack 生成的 javascript 文件。问题是我正在为 webpack 生成的文件生成哈希,以防止浏览器缓存,我无法弄清楚如何访问 webpack 生成的文件,因为哈希名称可能会更改。例如,如果 webpack 生成一个名为 bundle-cdcf74127a4e321fbcf0.js 的文件,我不会提前知道哈希函数 cdcf74127a4e321fbcf0,所以我无法访问它index.html

这是我的 webpack 配置文件:

const CleanWebpackPlugin = require('clean-webpack-plugin');

module.exports = {
entry: "./js/main.js",
output: {
filename: "static/bundle-[hash].js",
},
resolveLoader: {
moduleExtensions: ['-loader']
},
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel',
query: {
presets: ['react', 'es2015', 'stage-0']
}
},
{
test: /\.css$/,
loader: 'style-loader',
},
{
test: /\.css$/,
loader: 'css-loader',
query: {
modules: true,
localIdentName: '[name]__[local]___[hash:base64:5]'
}
}
]
},
plugins: [new CleanWebpackPlugin(['static/bundle*.js'])]
};

用于调用 index.html 中的 webpack 生成文件的代码如下(此代码不起作用,因为星号搜索在此处的文件名中似乎不起作用):

<body>
<div id="app"></div>
<script src="bundle*.js"></script>
</body>

Flask 应用程序代码如下:

app = Flask(__name__, static_url_path='')
@app.route('/')
def default():
return render_template('index.html')

我该如何修复这段代码,以便它为 webpack 生成的文件提供服务?

最佳答案

需要使用webpack插件htmlWebpackPlugin,引用https://github.com/jantimon/html-webpack-plugin#configuration .

你可以为这个插件提供一个html模板来注入(inject)webpack生成的js文件,注意这些配置选项:template , inject, block ,'散列'。

new CleanWebpackPlugin(['dist']),
new HtmlWebpackPlugin({
template: './index.html'
favicon: './favicon.ico',
filename: './dist/index.html'
inject: 'body',
chunks: ['vendor', 'app'],
minify: {
collapseWhitespace: true,
removeComments: true,
removeAttributeQuotes: true
}
})

关于javascript - 如何从 index.html 访问 webpack 生成的 js 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46259935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com