Сократите несколько файлов с помощью UglifyJS - PullRequest
36 голосов
/ 11 января 2012

Можно ли сжимать несколько файлов с помощью UglifyJS?

Что-то вроде ...

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

Кроме того, я запускаю Uglify через NodeJS в командной строке Windows

Ответы [ 3 ]

51 голосов
/ 11 января 2012

На самом деле то, что вы хотите сделать (обмануть, думая, что это всего лишь 1 файл), это просто кошка

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
39 голосов
/ 21 ноября 2013

Для будущих читателей этого вопроса, с 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
3 голосов
/ 26 сентября 2014

номер

но, как говорится в других ответах, в текущей форме он может объединить их все в одном и том же выводе. Что не совпадает с тем, что спрашивают.

Если у вас есть дюжина файлов, которые являются отдельными модулями. Вы не можете увеличить их все одновременно. Что желательно, потому что вы экономите время сборки для запуска nodejs каждый раз.

yuicompressor позволяет это, и время, сэкономленное не запуском jvm для каждого отдельного файла, велико. И, в конце концов, вы получите file1-min.js, file2-min.js и т. Д., А не один объединенный BLOB-объект.

С помощью uglify вам придется порождать один процесс на файл, если вы не хотите объединять вывод.

...