Makefile结合js文件并制作压缩版本

Oli*_*cal 11 javascript compression makefile build

我正在尝试编写一个基本的makefile,它将多个js文件合并为一个,然后执行相同但压缩它们.

到目前为止,我有一个可以使压缩版本正常的.

# Set the source directory
srcdir = src/

# Create the list of modules
modules =   ${srcdir}core.js\
            ${srcdir}sizzle.js\
            ${srcdir}json2.js\
            ${srcdir}ajax.js\
            ${srcdir}attribute.js\
            ${srcdir}content.js\
            ${srcdir}cookie.js\
            ${srcdir}css.js\
            ${srcdir}event.js\
            ${srcdir}json.js\
            ${srcdir}location.js\
            ${srcdir}opacity.js\
            ${srcdir}ready.js\
            ${srcdir}size.js\
            ${srcdir}init.js

# Compress all of the modules into spark.js
spark.js: ${modules}
    java -jar yuicompressor.jar -o $@ $^
Run Code Online (Sandbox Code Playgroud)

有谁知道如何添加一个名为spark-dev.js的未压缩版本?我一直在尝试使用猫,但我没有走得太远.这是我写过的第一个makefile.

编辑 我用猫尝试了这个代码

spark-dev.js: ${modules}
    cat $@ $^
Run Code Online (Sandbox Code Playgroud)

slo*_*dog 10

你几乎在那里:-)这应该工作:

spark-dev.js: ${modules}
    cat > $@ $^
Run Code Online (Sandbox Code Playgroud)

背景:函数cat是(尝试)打开其命令行中列出的所有文件,并将内容转储到stdout.> $@shell 将语法理解为"创建文件$@,并将此命令的stdout连接到它",所以现在我们最终将内容$^组合在一起$@.