如何在 Webpack 中禁用重命名函数名?打字稿,Javascript

Posted

技术标签:

【中文标题】如何在 Webpack 中禁用重命名函数名?打字稿,Javascript【英文标题】:How to disable in Webpack to rename of function names? TypeScript, Javascript 【发布时间】:2017-07-07 02:39:18 【问题描述】:

如何在 Webpack 中禁用重命名函数名? 我的代码中有这个类的名称:

import  MenuBlocksMenuPage  from "../pages/menu/blocks/menupage";

但在编译后的文件中,该行变成了不可读的字符串。

/* harmony import */ var __WEBPACK_IMPORTED_MODULE_73__pages_menu_blocks_menupage__ = __webpack_require__(669);

我的问题是: Webpack 中有哪些选项可以禁止更改类或函数名称?

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,Andrew Mackie 的链接指向的 TerserPlugin 将解决这个问题,但也是一个相当繁重的解决方案。一种选择是更改 webpack 中优化设置的工作方式。一种方便的方法(无需深思熟虑)是:

optimization: 
  minimize: true|false|"compress"|"preserve"

"compress" 会删除空白但不会破坏 “保留”将最小化但不会破坏函数和类名

这是 webpack.conf 的 Terser 配置:

optimization: 
    minimize: true,
    minimizer: [
        new TerserPlugin(
            terserOptions: 
                keep_classnames: true,
                keep_fnames: true
            
          )
        ]
  ,

【讨论】:

以上是关于如何在 Webpack 中禁用重命名函数名?打字稿,Javascript的主要内容,如果未能解决你的问题,请参考以下文章

如何调试打字稿代码,在 vscode/vs2015 中使用 webpack 捆绑

通过webpack生产模式编译时如何忽略打字稿错误

如何在 Angular 2 中包含打字稿自定义类型定义?

打字稿错误对象可能为空?为啥,如何禁用?

使用角度,打字稿,webpack时如何将jquery添加到窗口对象

打字稿:通过传入命名参数的构造函数创建类?