我正在寻找最简单的方法来自动将咖啡脚本重新编译成 JS。
阅读文档,但仍然无法获得我想要的东西。
我需要它来监视文件夹src/
中的任何*.coffee
文件修改并将它们编译成连接的 javascript 文件到lib/something.js
.
不知何故不能将观察、编译和连接结合在一起。:/
我正在寻找最简单的方法来自动将咖啡脚本重新编译成 JS。
阅读文档,但仍然无法获得我想要的东西。
我需要它来监视文件夹src/
中的任何*.coffee
文件修改并将它们编译成连接的 javascript 文件到lib/something.js
.
不知何故不能将观察、编译和连接结合在一起。:/
咖啡脚本文档为此提供了一个示例:
观察文件的变化,并在每次保存文件时重新编译:
coffee --watch --compile experimental.coffee
如果您有要执行的特定脚本,可以使用 linux 命令 dnotify: http: //linux.die.net/man/1/dnotify
dnotify --all src/ --execute=command
编辑:我在 dnotify 的 --execute 部分遇到了一些问题 - 可能是一个错误,但这就是我的工作:
dnotify --all . -e `coffee -o lib/ --join --compile *.coffee`
每次修改文件时都会执行编译命令。
如果您在命令后面附加一个 & 符号,如下所示:
dnotify --all . -e `coffee -o lib/ --join --compile *.coffee` &
它将在一个单独的过程中启动。要获取进程 ID,您可以使用以下命令:
ps ux | awk '/dnotify/ && !/awk/ {print $2}'
然后,您可以使用以下方法终止该进程:
kill `ps ux | awk '/dnotify/ && !/awk/ {print $2}'`
但是,如果这是您的目标(按进程名称杀死),您可以使用以下方法以更简单的方式完成:
killall dnotify
试试抖动
https://github.com/TrevorBurnham/jitter
它监视 .coffee 文件的目录,当它检测到文件已更改时,它会自动将其重新编译为 .js
抖动 /path/to/coffee/dir /path/to/js/dir
我一直在尝试使用 coffescript 和 sencha touch 的项目,它似乎工作得很好。不处理连接问题,但对于只需要自动编译的人来说使用起来真的很简单。
这对我有帮助(-o
输出目录,-j
加入 project.js,-cw
编译并深入观看 coffeescript 目录):
coffee -o web/js -j project.js -cw coffeescript
Wellcoffee --watch
有2个主要缺陷:
git commit
出色我想出的解决方案是一个相当简单的 Bash 脚本,它需要coffee --watch
更进一步的步骤,这将允许您的工作目录树在系统登录后被监视,并在每个文件保存/更改或新文件创建时自动编译为 JavaScript:
http://blog.gantrithor.com/post/11609373640/carefree-coffeescript-auto-compiler
可能有更优雅的方式来做到这一点,但这个实现效果很好 =)
find -type f | grep .coffee | xargs ls -t | head -n 1 | xargs coffee -cw
找到最后修改的咖啡脚本并将其置于编译监视模式
作为 /src 上一级,这将适用于所有找到的 .coffee 文件,无论深度如何。
coffee -w -c src/
我发现命令行 coffeescript 编译器不太适合复杂的项目结构。
如果您和您的构建过程和我一样需要,请查看Grunt - http://gruntjs.com/
它允许高度复杂的构建过程 - 例如,您可能
任务可以串在一起,监视的文件/文件夹也可以高度自定义。
对您的问题的简短回答是该coffee
实用程序不是为此而设计的;结合文件监视和连接实际上非常复杂。期待在不久的将来为 CoffeeScript 提供更复杂的构建工具;在那之前,您可能希望通过编写 Cakefile 或 Ruby Watchr 脚本来构建您的项目。然后,您还可以添加缩小、文档生成以及特定项目所需的任何其他内容(更不用说保证特定的串联顺序)。
find `pwd` | grep .coffee | xargs coffee -w -c
在应用程序的根目录中尝试这个
改变了关于串联的想法。
创建了小的 compiler.sh 文件,其中包含:
dnotify -M src/ -e coffee -o lib/ -c src/ &
dnotify -M spec/ -e coffee -o lib/ -c spec/ &
一种适合我的需要。
nodemon -x coffee server.coffee
为我做。
安装nodemon
使用npm install -g nodemon