如何在生产 webpack 构建中获取原始函数参数名称
How to get original function parameter names in production webpack build
我正在尝试实现类似于依赖注入的功能,通过从 javascript 模块公开的函数中获取参数名称,如下所示:
module.exports = (router,form,query,url) => {
// Do something with these parameters ...
return response;
};
我可以通过解析函数的字符串表示来解决这个问题。 There's already a SO thread for that.
当代码与 webpack 捆绑用于生产时,我的问题变得很明显,所有参数名称都被破坏了,原始名称也丢失了。
我在 webpack 配置中找不到任何可以帮助我的选项。
有没有一种方法可以做我想做的事,而不会使导出函数的模块担心与此问题相关的任何事情?
查看 webpack TerserPlugin 缩小选项:
From here
您可以自己处理此文件缩小或根本不缩小。
类似的东西:
module.exports = {
optimization: {
minimize: true,
minimizer: [
new TerserPlugin({
minify: (file, sourceMap) => {
if (file.name == <Your_file_with_DI_function>) {
return null;
}
const { error, map, code, warnings } = require('uglify-module')
.minify(file, {
/* Your options for minification */
});
return { error, map, code, warnings, []};
},
}),
],
},
};
我想做的是不可能的。
当代码到达最小化插件时,它已经被连接成一个包文件。
另一种选择是使用 uglify-loader,但这仅适用于模块级别,因此您剩下的是包装实际模块的非压缩代码。
我正在尝试实现类似于依赖注入的功能,通过从 javascript 模块公开的函数中获取参数名称,如下所示:
module.exports = (router,form,query,url) => {
// Do something with these parameters ...
return response;
};
我可以通过解析函数的字符串表示来解决这个问题。 There's already a SO thread for that.
当代码与 webpack 捆绑用于生产时,我的问题变得很明显,所有参数名称都被破坏了,原始名称也丢失了。
我在 webpack 配置中找不到任何可以帮助我的选项。
有没有一种方法可以做我想做的事,而不会使导出函数的模块担心与此问题相关的任何事情?
查看 webpack TerserPlugin 缩小选项: From here
您可以自己处理此文件缩小或根本不缩小。
类似的东西:
module.exports = {
optimization: {
minimize: true,
minimizer: [
new TerserPlugin({
minify: (file, sourceMap) => {
if (file.name == <Your_file_with_DI_function>) {
return null;
}
const { error, map, code, warnings } = require('uglify-module')
.minify(file, {
/* Your options for minification */
});
return { error, map, code, warnings, []};
},
}),
],
},
};
我想做的是不可能的。
当代码到达最小化插件时,它已经被连接成一个包文件。
另一种选择是使用 uglify-loader,但这仅适用于模块级别,因此您剩下的是包装实际模块的非压缩代码。