2015-10-04 2 views
0

В bash без использования Ant, Grunt или аналогичного, я хочу объединить некоторые файлы.Как объединить файлы JavaScript без инструмента сборки?

Я не думаю, что это должно быть сложнее, чем несколько строк bash.

Я не хочу использовать инструмент построения, как в этом SO Post.

Я хочу использовать bash, подобный этому SO Post.

Было бы что-то вроде:

cat *.js > all.txt 

Однако, я хочу только кошки .js файлы, которые имеют эту форму

object.SomeName.js 

В качестве побочного вопроса, большинство людей вырваться из их. js в объекты?

насчет:

cat object.*.js >> all.txt 

Также существуют зависимости между объектами, так заказывающие вопросы.

В каком порядке работает кот?

+0

звучит как вам просто нужно readup на подстановочные сопоставления файлов в баш ... – dandavis

+0

Я отвечал, что я думаю, что это ответ, но B.C. есть depeddencies, мне нужно знать порядок, в котором работает кошка, или, возможно, есть инструмент batter bash? –

+0

Этот ответ: http://serverfault.com/a/122743 говорит, что расширение шаблона bash является алфавитным. – jjrv

ответ

2

Сначала создайте файл, описывающий ваши зависимости.

obj0 obj2 
obj1 obj2 

Теперь tsort(1) может дать вам заказ.

Теперь вы можете прочитать каждую строку по очереди и вывести файлы в правильном порядке.

{ 
    while read obj 
    do 
    cat "object.$obj.js" 
    done < <(tsort dep.txt) 
} > all.js 
+0

Вот хорошее объяснение деликта - https://viget.com/extend/dependency-sorting-in-ruby-with-tsort - Он использует хеш зависимости. Могу ли я написать отпр. txt в JSON? Или это просто пространство, разделенное, как в вашем примере. –

+0

@cadegalt: Как поясняет справочная страница, входной файл является разделителем пробелов. –