我有一个包含一组对象的js文件。
测试里普茨.js
[
{action: t.message, text: ' ==== Test form insertions === nInserting forms.... n'}
]
当我使用丑陋程序缩小此文件时,我得到的结果如下。
testripts.min.js
t.message;
如何解决这个问题。
(以上脚本为简化(
尝试单独为对象赋值。
取代
[
{action: t.message, text: ' ==== Test form insertions === nInserting forms.... n'}
]
跟
var myarray=[];
var obj={};
obj.action=t.message;
obj.text=" ==== Test form insertions === nInserting forms.... n";
myarray.push(obj);
你所拥有的只是一个数组,它的引用没有保存在任何地方。因此,UglifyJS 不会创建一个会立即被垃圾回收的数组,而是评估您的代码是否存在可能的副作用,并缩小您的代码,以便运行具有副作用的表达式(其余的被丢弃(。
text
属性只有一个纯字符串文本作为值,不可能有任何副作用,因此将其丢弃。action
的值是t.message
,如果message
是getter,可能会导致副作用。因此,缩小的结果只是t.message;
,没有别的。
一种选择是声明一个变量,以确保保存数组引用:
const arr = [
{action: t.message, text: ' ==== Test form insertions === nInserting forms.... n'}
];
输出,你可以在这里测试:
const arr=[{action:t.message,text:" ==== Test form insertions === nInserting forms.... n"}];