在官方文档中提到当应用Code Splitting
并生成chunk
文件时,如果chunk
代码发生更改,则其文件名将更改。然而使用chunk
代码文件的index.html
不能更改其<script>
标签中的文件名,因此在这种情况下,由webpack-manifest-plugin
生成的manifest.json
将有助于将[name].js
映射到[name].[hash].js
。
但与文档所说相反,似乎每次运行webpack构建我的代码时,新代码都会生成具有新哈希值的文件(如果代码中的某些内容发生更改),并且HTML-Webpack-Plugin
会自动注入带有代码文件的新名称的<script>
标签。这似乎不需要使用webpack-manifest-plugin
,我甚至看不到manifest.json
的使用处。
如果您正在查找我的webpack.config.js
:
const path = require('path')
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
const HTMLWebpackPlugin = require('html-webpack-plugin')
const ManifestPlugin = require('webpack-manifest-plugin')
module.exports = {
entry: ["core-js/stable", "regenerator-runtime/runtime", "./src/index.jsx"],
output: {
filename: '[name].[chunkhash].js',
path: path.resolve(`${__dirname}/build`)
},
mode: "none",
optimization: {
runtimeChunk: 'single',
splitChunks: {
cacheGroups: {
vendor: {
test: /[\\/]node_modules[\\/]/,
name: 'vendors',
chunks: 'all'
}
}
}
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: "/node_modules",
use: ['babel-loader']
}
]
},
plugins: [
new CleanWebpackPlugin(),
new HTMLWebpackPlugin({
template: './public/index.html'
}),
new ManifestPlugin({
fileName: 'manifest.json'
})
// need this plugin for SSR?
]
}
webpack-manifest-plugin和manifest.json的详细使用方法是什么?