【问题标题】:Minify multiple files with UglifyJS使用 UglifyJS 缩小多个文件
【发布时间】:2012-02-07 09:59:35
【问题描述】:

是否可以用 UglifyJS 压缩多个文件?

类似...

uglifyjs -o app.build.js appfile1.js appfile2.js ...

另外,我正在 Windows 命令提示符中通过 NodeJS 运行 Uglify

【问题讨论】:

    标签: javascript node.js uglifyjs


    【解决方案1】:

    实际上你想要做的(欺骗它认为它只有 1 个文件)只是 cat 它

    Linux

    cat file1.js file2.js file3.js file4.js | uglifyjs -o files.min.js
    

    Windows (未经测试)

    type file1.js file2.js > uglifyjs -o files.min.js
    

    type file1.js file2.js > merged.files.js
    uglifyjs -o merged.files.js
    

    【讨论】:

    • 猜猜我应该提到我在 Windows... :(
    • Err...这可能会起作用(当然未经我测试)stackoverflow.com/a/60254/158014
    • 我用windows语法更新了我的答案,我希望它有效,因为我还没有测试过,但是应该是它......
    • 你刚刚成就了我的一天!完美运行。
    • 这种方法不好,因为它不允许你有源地图,指向你的原始来源。幸运的是,有了 UglifyJS2,我们不再需要这个了。
    【解决方案2】:

    对于这个问题的未来读者,使用 UglifyJS2,这现在是微不足道的......

    uglifyjs file1.js file2.js -o foo.min.js
    

    也支持源地图。

    uglifyjs file1.js file2.js -o foo.min.js --source-map foo.min.js.map --source-map-root http://foo.com/src
    

    【讨论】:

    • 您也可以使用 * 将目录中的所有 JS 文件合并到一个文件中" uglifyjs -o test.js /someTestDir/* 文档说选项应该在前,文件在后;但这些示例显示相反. 引用github.com/mishoo/UglifyJS“文件名应该是最后一个参数,并且应该命名要从中读取JavaScript代码的文件”没关系,还是这个答案不正确?
    • 只是为了澄清一下我之前的评论,* 技巧似乎是 Git Bash 特有的,与 UglifyJS 无关。
    【解决方案3】:

    没有。

    但正如其他答案所述,在当前形式下,它可以将所有这些连接到同一个输出中。这与被问到的不一样。

    如果您有十几个单独模块的文件。你不能同时丑化它们。这是可取的,因为您节省了每次启动 nodejs 的构建时间。

    yuicompressor 允许这样做,并且通过不为每个单独的文件启动 jvm 节省的时间非常好。最后你会得到 file1-min.js、file2-min.js 等......不是一个连接的 blob。

    如果您不想连接输出,则使用 uglify 必须为每个文件生成一个进程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 2018-07-16
      相关资源
      最近更新 更多