JavaScript字符串连接在压缩时中断

JavaScript字符串连接在压缩时中断,javascript,compression,minify,string-concatenation,django-compressor,Javascript,Compression,Minify,String Concatenation,Django Compressor,我最近决定在一个项目中开始使用Django Compressor来自动连接和缩小js和css,并在它们发生更改时刷新缓存 我遇到的问题是,有些脚本在未压缩时可以工作,但在通过压缩器运行后会中断。我已经能够将可能性缩小到字符串连接。特别是HTML字符串连接 例如: boldTerm = '<b>' + terms[i] + '</b>'; term = new RegExp(term, 'g'); data = data.replace(term, boldTerm);

我最近决定在一个项目中开始使用Django Compressor来自动连接和缩小js和css,并在它们发生更改时刷新缓存

我遇到的问题是,有些脚本在未压缩时可以工作,但在通过压缩器运行后会中断。我已经能够将可能性缩小到字符串连接。特别是HTML字符串连接

例如:

boldTerm = '<b>' + terms[i] + '</b>';
term = new RegExp(term, 'g');
data = data.replace(term, boldTerm);
谁能解释一下:

  • 为什么会断裂
  • 我应该如何编写它,以便在压缩时工作
  • 谢谢

    编辑: 以下是引发错误的压缩代码部分:

    (jQuery);';term=new RegExp(term,'g');data=data.replace(term,boldTerm);}}
    
    它被抛出到RegExp(term,g)中的“g”上

    我发现这是可行的:

    boldTerm = 'TEST';
    term = new RegExp(term, 'g');
    data = data.replace(term, boldTerm);
    
    boldTerm = '<' + 'b' + '>' + terms[i] + '<' + '/b' + '>';
    term = new RegExp(term, 'g');
    data = data.replace(term, boldTerm);
    
    boldTerm=''+术语[i]+'';
    术语=新的RegExp(术语“g”);
    数据=数据。替换(术语,粗体术语);
    
    这就解决了我的一部分问题,就是让它工作起来。但“为什么”的问题仍然存在

    正在进行的事情:

    • jQuery
    • 胡子
    • Django压缩机(JSmin)

    可能您没有导出RegExp,而压缩器正在重命名它。

    1。为什么要覆盖“term”变量?2.压缩时代码部分的外观如何?在什么位置抛出错误?1。我没有特别的理由那样做。既然你问起了,我想我不应该那样做。2.有关生成错误的压缩代码片段,请参见上面的编辑。如果不需要原始字符串类型的术语,可以覆盖术语。为什么有“after(jQuery)”;?那可能是你的问题。so的语法突出显示以红色显示,javaScript真正看到的代码(字符串为红色)…@nickhaganis,正如您在上面最小化的代码中看到的语法突出显示,
    (jQuery)零件导致问题。另外,最小化代码中的第一条语句在哪里?