将Webpack与模块一起使用时,如何通过Terser重命名顶级功能?

问题描述

我正在使用webpack 4将一系列具有导入/导出功能的TypeScript文件捆绑到一个bundle.js中。然后,我尝试使用Terser混淆最终输出。我得到了有效的输出,但是,Webpack输出的是我代码中最初的顶级功能,而这种方式使Terser拒绝修改功能名称。

任何想法如何使Terser重命名这些函数,或者如何使webpack不使用下面的 webpack_require 行输出,这似乎是通过使我的函数成为对象上的方法来完成Terser的。

function setCommands() {
//My original function here. Looking to have "setCommands" get renamed for obfuscation.
}

//Terser appears not to mangle the above name due to the below code...
//How can I obfuscate with this via Terser or get webpack to not output this?
//Other stuff created by webpack for bundle.js output

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__,"setCommands",function() { return _panelUI__WEBPACK_IMPORTED_MODULE_16__["setCommands"]; });

/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__,function() { return setCommands; });

参考:webpack.config.js文件...

const path = require('path');

module.exports = {
    mode: 'none',entry: './src/js/startHere.ts',devtool: 'source-map',output: {
        filename: '../dist/bundled.js',path: path.resolve(__dirname,'./'),},watch: true,resolve: {
        extensions: ['.ts','.tsx','.js'],module: {
        rules: [
            {
                test: /\.ts(x?)$/,enforce: 'pre',exclude: /node_modules/,use: 'tslint-loader',{
                test: /\.ts(x?)$/,use: 'ts-loader',{
                test: /\.css$/,use: ['style-loader','css-loader'],],performance: {
        //suppress yellow errors about file size.
        hints: 'warning',maxEntrypointSize: 3000000,maxAssetSize: 3000000,};

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...