build: static file timestamp

This commit is contained in:
jialin
2024-06-18 12:14:27 +08:00
parent d3f3baa93e
commit adbc2ffbdd
+43 -50
View File
@@ -9,6 +9,7 @@ import routes from './routes';
const env = process.env.NODE_ENV; const env = process.env.NODE_ENV;
const isProduction = env === 'production'; const isProduction = env === 'production';
const t = Date.now();
export default defineConfig({ export default defineConfig({
proxy: { proxy: {
...proxy() ...proxy()
@@ -16,22 +17,27 @@ export default defineConfig({
base: process.env.npm_config_base || '/', base: process.env.npm_config_base || '/',
...(isProduction ...(isProduction
? { ? {
extraBabelPlugins: [ // extraBabelPlugins: [
[ // [
'babel-plugin-named-asset-import', // 'babel-plugin-named-asset-import',
{ // {
loaderMap: { // loaderMap: {
css: { // css: {
loader: 'css-loader', // loader: 'css-loader',
options: { // options: {
modules: { // modules: {
localIdentName: 'css/[name]__[local]___[hash:base64:5]' // localIdentName: 'css/[name]__[local]___[hash:base64:5]'
} // }
} // }
} // }
} // }
} // }
] // ]
// ],
scripts: [
{
src: `/js/umi.${t}.js`
}
], ],
cssLoader: { cssLoader: {
modules: { modules: {
@@ -39,28 +45,16 @@ export default defineConfig({
} }
}, },
chainWebpack(config: any) { chainWebpack(config: any) {
// config.plugin('extract-css').use(MiniCssExtractPlugin, [
// {
// filename: 'css/[name].[contenthash:8].css',
// chunkFilename: 'css/[name].[contenthash:8].chunk.css',
// ignoreOrder: true
// }
// ]);
// config.plugin('delete-css').use(DeleteCssPlugin, [
// {
// outputPath: path.resolve(__dirname, '../', 'dist')
// }
// ]);
config.plugin('mini-css-extract-plugin').tap((args: any) => [ config.plugin('mini-css-extract-plugin').tap((args: any) => [
{ {
...args[0], ...args[0],
filename: `css/[name].[contenthash:8].css`, filename: `css/[name].${t}.css`,
chunkFilename: `css/[name].[contenthash:8].chunk.css` chunkFilename: `css/[name].${t}.chunk.css`
} }
]); ]);
config.output config.output
.filename('js/[name].[contenthash:8].js') .filename(`js/[name].${t}.js`)
.chunkFilename('js/[name].[contenthash:8].chunk.js'); .chunkFilename(`js/[name].${t}.chunk.js`);
config config
.plugin('compression-webpack-plugin') .plugin('compression-webpack-plugin')
.use(CompressionWebpackPlugin, [ .use(CompressionWebpackPlugin, [
@@ -72,24 +66,23 @@ export default defineConfig({
minRatio: 0.8 minRatio: 0.8
} }
]); ]);
config.module // config.module
.rule('images') // .rule('images')
.test(/\.(png|jpe?g|gif|svg|ico)(\?.*)?$/) // .test(/\.(png|jpe?g|gif|svg|ico)(\?.*)?$/)
.use('url-loader') // .use('url-loader')
.loader(require.resolve('url-loader')) // .loader(require.resolve('url-loader'))
.tap((options: any) => { // .tap((options: any) => {
console.log('iamges==options========', options); // return {
return { // ...options,
...options, // limit: 8192, // 小于8KB的图片会被转为base64
limit: 8192, // 小于8KB的图片会被转为base64 // fallback: {
fallback: { // loader: require.resolve('file-loader'),
loader: require.resolve('file-loader'), // options: {
options: { // name: 'static/[name].[hash:8].[ext]' // 将所有图片输出到 static 目录
name: 'static/[name].[hash:8].[ext]' // 将所有图片输出到 static 目录 // }
} // }
} // };
}; // });
});
} }
} }
: {}), : {}),