4 ms·
In GNU make, this might look something like: %.coffee : %.js js2coffee $< > $@ %.ugly : %.coffee uglifyjs $< > $@ build/j
by sigil 13y ago
In GNU make, this might look something like:
%.coffee : %.js
js2coffee $< > $@
%.ugly : %.coffee
uglifyjs $< > $@
build/js/all.min.js : $(UGLY)
cat $^ > $@
I'm not that familiar with grunt. Can it do the equivalent of make -j4?
PS. I'll happily agree that collecting the list of script files to operate on -- and the list of script files after the transformation (eg $(UGLY)) -- is slightly annoying in make.
- SchizoDuckie 13y agoI'm not familiar with the -j4 argument. (something with debug info?) Also, what your example looks like voodoo. Could you explain what the parameters do? On top of that, tools like uglifyjs still run on NPM/Node afaik.
- deleted 13y ago[deleted]
- dap 13y agoThis is Make 001: $@ is your output file, $^ are your inputs (prerequisites, technically), and $< is your first input file. They're unfortunately ungoogleable, but just remember that they're called "Automatic variables" in the GNU make documentation. "-j4" means to run up to 4 jobs in parallel. It's orthogonal to the issues at hand.
- ripter 13y agohttp://www.gnu.org/software/make/manual/make.html#Automatic-Variables http://www.gnu.org/software/make/manual/make.html#Automatic-... The manual is actually pretty good. I've only started to dig my teeth into make.
- sigil 13y ago-j4 says use up to 4 processes in parallel. Make has a jobserver that does parallelism safely with respect to the dependency graph. So for example, even if we have workers to spare, it won't try to build all.min.js until all of the .ugly files have finished building. The %.foo : %.bar things are pattern rules. [1] The $<, $@, and $^ things are called automatic variables. [2] They correspond to the first input file for a rule, the target file for a rule, and the complete list of input files for a rule, respectively. Cryptic at first but really handy. There's a standalone script for UglifyJS. [3] [1] https://www.gnu.org/software/make/manual/html_node/Pattern-Match.html https://www.gnu.org/software/make/manual/html_node/Pattern-M... [2] https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html https://www.gnu.org/software/make/manual/html_node/Automatic... [3] https://github.com/mishoo/UglifyJS2/blob/master/bin/uglifyjs https://github.com/mishoo/UglifyJS2/blob/master/bin/uglifyjs