Build Makefile:如何提取、替换和放入新文件? 更新
最后,我提出了一个亮丽的构建Makefile。如果你想看一下这个要点-Build Makefile:如何提取、替换和放入新文件? 更新,build,makefile,Build,Makefile,最后,我提出了一个亮丽的构建Makefile。如果你想看一下这个要点- 要连接一些文件,我可以执行以下操作: # JS files JS_TARGETS = wrapper.js \ file1.js \ file2.js combine-js: @cat $(JS_TARGETS) > file-combined.js 但那不是我想要/需要的。我的wrapper.js类似于: (功能(Foo、win、doc){ "严格使用
要连接一些文件,我可以执行以下操作:
# JS files
JS_TARGETS = wrapper.js \
file1.js \
file2.js
combine-js:
@cat $(JS_TARGETS) > file-combined.js
但那不是我想要/需要的。我的wrapper.js
类似于:
(功能(Foo、win、doc){
"严格使用",;
/*{要替换的代码}*/
})(window.Foo=window.Foo |{},窗口,文档);
因此,我需要将其他文件放入
wrapper.js
中。之后,我将运行jshint
和uglify
,但这是另一个问题。最简单的方法是将wrapper.js
拆分为两部分-头和尾-然后按严格顺序连接,例如:
cat wrapper_head.js file1.js file2.js wrapper_tail.js > file-combined.js
这应该可以做到-它使用
perl
但是:
JS_WRAPPED_SOURCES = file1.js file2.js
JS_WRAPPER = wrapper.js
JS_SOURCES = $(JS_WRAPPER) $(JS_WRAPPED_SOURCES)
combined.js: $(JS_SOURCES)
cat $< | perl -e '$$c=join("\n",<>); $$c =~ s/{CODE_TO_BE_REPLACED}/`cat $(JS_WRAPPED_SOURCES)`/e; print $$c' \
> $@
JS\u WRAPPED\u SOURCES=file1.JS file2.JS
JS_WRAPPER=WRAPPER.JS
JS_源=$(JS_包装)$(JS_包装的_源)
combined.js:$(js_来源)
cat$<| perl-e'$$c=join(“\n”,)$$c=~s/{CODE_TO___替换}/`cat$(JS_包装的_源代码)`/e;打印$$c'\
> $@
由于您正在运行jshint
和uglify
我猜您正在使用Grunt
。
在这种情况下,我建议您使用像。这样的Grunt任务。实际上,这是最简单的解决方案,谢谢。稍后我会投票,因为我已经达到了每日上限。非常感谢,很好,很干净,但我选择@keltar's是因为简单。稍后我会投票,我已经达到每日限额了。不客气!是的,如果可能的话,保持简单!