gpt4 book ai didi

javascript - 使用 TerserWebpackPlugin 将 sourceMap bundle.js.map 文件存储在特定位置

转载 作者:行者123 更新时间:2023-12-01 17:17:29 37 4
gpt4 key购买 nike

我想要什么?

使用 TerserPlugin 将 sourceMap something.js.map 文件存储到特定位置。我找到了一些关于如何自定义缩小的基本说明 - https://github.com/webpack-contrib/terser-webpack-plugin#custom-minify-function ,但我无法使用它。

这是我来自 webpack.config.ts 的优化对象:

optimization: {
splitChunks: ifProduction({
chunks: 'all',
automaticNameDelimiter: '.'
}, false),
runtimeChunk: ifProduction(true, false),
minimize: true,
minimizer: [
ifProduction(new TerserPlugin({
parallel: true,
sourceMap: true,
minify: 'see value below -->>',
terserOptions: {
output: {
ascii_only: true,
beautify: false
},
compress: {
pure_getters: true,
join_vars: false
}
}
}))
]
}

这是我的缩小功能,但我就是找不到“导出”.js.map 的方法。或者不明白它是如何工作的。

minify: (file, sourceMap) => {
// https://github.com/mishoo/UglifyJS2#minify-options
const uglifyJsOptions: any = {
/* your `uglify-js` package options */
};

if (sourceMap) {
uglifyJsOptions.sourceMap = {
content: sourceMap,
root: "http://localhost:7000",
url: "out.js.map"
};
}

return require('uglify-js').minify(file, uglifyJsOptions);
}

开发工具:ifNotTest(ifDevelopment('eval', 'source-map'))

我花了两天时间试图弄清楚 minify 函数是如何工作的,并质疑自己为什么他们仍然引用 uglify-js。我认为 terser 可以有一些选项来自定义 sourceMap,但是 webpack 的文档对于这种情况没有多大用处: https://webpack.js.org/plugins/terser-webpack-plugin/#minify

最佳答案

您可以使用 webpack 输出设置“sourceMapFilename”来指定 sourcemap 文件名和位置。

https://webpack.js.org/configuration/output/#outputsourcemapfilename

例子:

        output: {
filename: 'assets/js/[name].[chunkhash].js',
chunkFilename: 'assets/js/[name].[chunkhash].js',
path: path.resolve(__dirname, 'dist'),
sourceMapFilename: 'assets/js/maps/[name].[chunkhash].js.map'
}

关于javascript - 使用 TerserWebpackPlugin 将 sourceMap bundle.js.map 文件存储在特定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61608759/

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