javascript - 如何在 JavaScript 中缩小常量值?

标签 javascript webpack

我需要缩小我正在处理的 javascript 项目中的常量值。

目前我将常量定义为如下所示:

export const Constants = {
    I_AM_CONSTANT: 'hello',
    ANOTHER_CONSTANTS: 10,
    YET_ANOTHER_CONSTANTS: false,
    NO_MORE_CONSTANT: 'end'
};

我把这个对象放入一个单独的文件中。

然后我使用WebPack的UglifyPlugin来缩小代码。

但是我得到的是类似

e.Constants = {
    I_AM_CONSTANT: 'hello',
    ANOTHER_CONSTANTS: 10,
    YET_ANOTHER_CONSTANTS: false,
    NO_MORE_CONSTANT: 'end'
};

这就像根本没有缩小效果。谁能告诉我对这些常量进行缩小的正确方法是什么?我如何更改我的代码?如果可能的话,我还想知道一些在 javascript 中编写常量值的最佳实践。

最佳答案

你无法缩小你所拥有的东西,因为缩小后的东西不知道可以用在哪里。如果您正确使用了注入(inject),那么消耗的代码可以被缩小,例如

var closure = function(constants){
    //constants used lots in here.
}(e.Constants);

可以安全地压缩为

var closure = function(c){
    //c used lots in here.
}(e.Constants);

e.constants 被封闭为局部变量 constants,这可以愉快地缩小为 c,因为 minifer 知道它的范围,它位于封闭物内部并被注入(inject)。

这是这样的:

function closure(){
   //e.constants used lots in here
}

无法缩小,因为对 e.constants 的任何更改都会被破坏。

关于javascript - 如何在 JavaScript 中缩小常量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45731969/

相关文章:

javascript - 如何在不刷新网页的情况下填充数据库列表

javascript - 使用 JavaScript 读取和修改 XML 数据

javascript - 如何存储配置文件并使用 React 读取它

javascript - 由于 uglifyJsPlguin,webpack 构建失败

javascript - Bootstrap轮播不滑动

javascript - Angular-Slick 与 Grunt

javascript - React js - this.state 中的 API 响应是空对象

javascript - 如何让 Laravel 5.3 应用程序在 SASS/JS 更改时自动重新加载

reactjs - 在运行时禁用 create-react-app webpack hot/live reload

javascript - webpack - 如何为生产环境和开发环境设置不同的变量