首页 > 解决方案 > 避免命名函数调用的 Webpack 配置

问题描述

我想用磁盘空间来交换 webpack 中没有命名函数调用,以便我可以更轻松地进行语言分析。

然而 webpack' ing以下模块,

结果是:

function bar() { return "THIS IS BAR!"; }
function foo() {
  console.log(bar());
  console.log(bar());
  console.log(bar());
}
foo();

而且我要,

function foo() {
  console.log((() => { return "THIS IS BAR!" })());
  console.log((() => { return "THIS IS BAR!" })());
  console.log((() => { return "THIS IS BAR!" })());
}
foo();

即使这会增加捆绑的空间。因为我想避免函数调用。

我怎样才能做到这一点?

到目前为止,我已经尝试了几条{ optimization: { ... } }规则,但没有一条会导致预期的结果。

标签: javascriptwebpack

解决方案


您是否尝试过模式制作。使用当前设置。我可以看到欲望输出。

// foo.js

import bar from './bar'
export default function print() {
    console.log(bar())
    console.log(bar())
    console.log(bar())
}

// bar.js

export default function bar() {
    return "THIS IS TEST"
}

// webpack.config.js

const path = require('path');

module.exports = {
    mode: "production",
  entry: './src/foo.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'foo.bundle.js'
  }
};

// 版本

“webpack”:“^4.42.0”,“webpack-cli”:“^3.3.11”

// 输出

([function(e,t,n){"use strict";function r(){console.log("THIS IS TEST"),console.log("THIS IS TEST"),console.log("THIS IS TEST")}n.r(t),n.d(t,"default",(function(){return r}))}]);

推荐阅读