我有一个js文件,其中包含一个对象数组。
testsripts.js
[
{action: t.message, text: ' ==== Test form insertions === \nInserting forms.... \n'}
]
当我使用uglifier缩小此文件时,得到的结果如下所示。
testsripts.min.js
t.message;
如何解决这个问题。
(以上脚本为简化起见已缩短)
答案 0 :(得分:0)
尝试单独分配对象的值。
替换
[
{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);
答案 1 :(得分:0)
所有您所拥有的数组的引用不会保存在任何地方。因此,UglifyJS不会创建立即垃圾收集的数组,而是会评估您的代码是否可能产生副作用,并最小化您的代码,以使具有副作用的表达式运行(其余的表达式将被丢弃)。
text
属性只有一个纯字符串文字作为值,它不可能有任何副作用,因此将其丢弃。 action
的值为t.message
,如果message
是吸气剂,则可能会引起副作用。因此,缩小的结果仅为t.message;
,而没有其他内容。
一种选择是声明一个变量,以确保保存数组引用:
const arr = [
{action: t.message, text: ' ==== Test form insertions === \nInserting forms.... \n'}
];
输出,您可以测试here:
const arr=[{action:t.message,text:" ==== Test form insertions === \nInserting forms.... \n"}];