如何使一些JS代码的一部分不被缩小器缩小

时间:2014-11-10 21:22:52

标签: javascript minify uglifyjs

有很多工具可以通过修改变量名,删除注释等来“压缩”更多或更少的javascript文件......

但是如何从这个文件中“告诉”他们 NOT 处理文件的部分。我需要以某种方式“告诉”他们,甚至以另一种方式重写该部分,或者在评论中添加一些标签,......以 NOT 处理我文件的某些部分。

我找到的最简单但非常难看的解决方案是将我的代码放在字符串中eval。但如果有任何其他解决方案,我很乐意知道它,因为eval是UGLY!

更新

请根据我的要求,这些不是可能的答案:

  • 文件必须缩小
  • 需要在源代码
  • 中完成

2 个答案:

答案 0 :(得分:1)

如果你正在使用gulp,你可以使用一个名为gulp-tap的模块来获取文件,将其分成某种类型的标识符,缩小你想要的部分,然后将它连接在一起。我确信grunt或其他任务选手具有类似的能力

答案 1 :(得分:0)

修改,更新

尝试利用yuicompressor的评论?

/*! function someFunction(i) {i = "abc"; return i} */
// minified stuff 

请参阅Comment Starting with /*!gistOnline JavaScript/CSS Compressor


尝试

/*! (function someFunction(i) {document.write(i); return i}(123)) */
    // minified stuff
    console.log("abc");
var scripts = document.scripts
, script = scripts[scripts.length - 1].innerText
.match(/\/\*!+.*\*\//g)[0].replace(/\/\*!|\*\//g, "").trim();
eval(script);

/*! (function someFunction(i) {document.write(i); return i}(123)) */
    // minified stuff
console.log("abc");
var scripts = document.scripts
, script = scripts[scripts.length - 1].innerText
.match(/\/\*!+.*\*\//g)[0].replace(/\/\*!|\*\//g, "").trim();
eval(script);

请参阅Degrading Script Tags