1

所以我试图编写一个很好的批处理文件来组合我的 javascript 库,组合和编译我的 .coffee 文件,组合这两个结果,然后用丑陋的方法缩小它。但是我的批处理文件遇到了一些问题;在我的咖啡命令之后,批处理文件停止运行。我没有收到任何错误或其他东西。

这是我的文件结构

batch.bat
src/
     coffee/
             1.coffee
             2.coffee
     js/
             1.js
             2.js

这是我的批处理文件的内容

mkdir temp
coffee --output temp --join coffee.js --compile src\coffee
copy /b src\js temp\javascript.js
copy /b temp\javascript.js+temp\coffee.js temp\min.js
uglifyjs -o  javascript.js temp\min.js

正如我所说,当我从控制台运行它时,mkdir 命令被执行,咖啡脚本运行并完成,然后批处理就停止了。我手动测试了这些命令,并且这些命令本身就像我期望的那样工作。

这是我在控制台中看到的结果:

C:\User>mkdir temp
C:\User>coffee --output temp --join coffee.js --compile src\coffee
C:\User>_

我的想法是,咖啡命令可能异步运行,而复制命令找不到要组合的所需文件,然后由于缺少文件而无法执行其他命令。到目前为止我还没有找到解决这个问题的方法..

4

1 回答 1

2

关键在于你的术语——咖啡——SCRIPT

因为它显然是一个 BATCH 文件,所以你需要CALL

mkdir temp
CALL coffee --output temp --join coffee.js --compile src\coffee
copy /b src\js temp\javascript.js
copy /b temp\javascript.js+temp\coffee.js temp\min.js
uglifyjs -o  javascript.js temp\min.js

如果你愿意,你也可以CALL这样UGLIFYJS做——但因为它是最后一个命令,所以没有什么区别。

CALL 设置返回位置以在脚本完成时恢复处理。

于 2013-04-12T09:02:22.317 回答