2012-01-11 3 views

ответ

48

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

Linux

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

Окна(непроверенные)

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

ИЛИ

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

Угадайте, я должен был упомянуть, что я на окнах ... :( – jcreamer898

+0

Err ... это может работать тогда (не проверено мной, конечно) http://stackoverflow.com/a/60254/158014 – Jakub

+0

Продолжайте получать синтаксическая ошибка на этом, но я буду продолжать возиться с ним ... – jcreamer898

35

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

Вы также можете использовать * для объединения всех JS-файлов с каталог в один файл "' uglifyjs -o test.js/someTestDir/* 'Документы говорят, что параметры должны быть первыми, а файлы - последними; но эти примеры показывают обратное. Чтобы процитировать https://github.com/mishoo/UglifyJS, имя файла должно быть последним аргументом и должно называть файл, из которого следует читать код JavaScript «Не имеет значения, или этот ответ неверен? – JeffryHouser

+2

Чтобы добавить пояснения к моему предыдущему комментарию, * трюк, похоже, специфичен для Git Bash и не связан с UglifyJS. – JeffryHouser

+0

Как работают карты источников? – insign

3

Номер

, но, как и другие ответы состояний, в нем текущей форме, он может сцепить все из них в том же выходе. Это не то же самое, что задается.

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

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

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

Смежные вопросы