任何JavaScript uglifier/minifier都可以忽略文件的一部分吗?

Sha*_*mal 7 javascript minify uglifyjs bundling-and-minification

我想知道任何JavaScript uglifier是否可以排除文件的某些部分.

就像在这个块中一样,我只想在开发环境中使用它:

// If s is undefined warn the DEV guys they forgot something!
if(s === undefined)
    throw new Error('Invalid i18n key');
Run Code Online (Sandbox Code Playgroud)

我可以通过向条件添加全局变量来停止错误,但是让它用一些元数据排除块是很酷的:

/* UGLIFY exclude */
// If s is undefined warn the DEV guys they forgot something!
if(path === undefined)
    throw new Error('Invalid i18n key, on' + current.parser.lineNo);
/* /UGLIFY */*
Run Code Online (Sandbox Code Playgroud)

这可能与他们中的任何一个?

提前致谢!

Ron*_*ton 0

Grunt.js。只需将您不想缩小的部分分解为独立文件即可。丑化另一个文件,然后连接丑陋的文件和漂亮的文件。当然,如果您要保持if声明漂亮,则该代码的精确位置很重要(相对于被提升的函数)。因此,也许您需要将脚本分成 3 个文件,将漂亮的文件夹if在中间,但这是可行的。

如果您想要一个简单的 Grunt 入门指南:https://hightechtele.com/articles/grunt-getting-started

查看Grunt uglify 文档:(这可能是也可能不是您想要的)

exceptsFiles 类型:数组 默认值:[]

将此与 mangle.properties 一起使用来传递一个或多个 JSON 文件,其中包含不应损坏的变量和对象属性的列表。有关文件语法的更多信息,请参阅 UglifyJS 文档。