咖啡脚本编译

问题描述 投票:0回答:12

我正在寻找最简单的方法来自动将咖啡脚本重新编译为 JS。

阅读文档但仍然难以获得我想要的东西。

我需要它来监视文件夹

src/
中的任何
*.coffee
文件修改,并将它们编译成串联的 javascript 文件到
lib/something.js

不知怎的,无法将观看、编译和连接结合在一起。 :/

javascript compilation coffeescript
12个回答
21
投票

咖啡脚本文档为此提供了一个示例:

监视文件的更改,并在每次保存文件时重新编译它:

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

7
投票

尝试抖动

https://github.com/TrevorBurnham/jitter

它监视 .coffee 文件的目录,当它检测到文件已更改时,它会自动将其重新编译为 .js

抖动 /path/to/coffee/dir /path/to/js/dir

我一直在使用 coffescript 和 sencha touch 的项目中进行尝试,它似乎工作得很好。不考虑串联问题,但对于只需要自动编译的人来说使用起来非常简单。


4
投票

这对我很有帮助(

-o
输出目录,
-j
加入project.js,
-cw
全面编译和观看coffeescript目录):

coffee -o web/js -j project.js -cw coffeescript

3
投票

好吧

coffee --watch
有2个主要缺陷:

  • 发出命令后创建的新文件不会被监视
  • 需要手动启动,因此您可能会忘记这样做,这听起来并不比忘记在您之前进行编译更精彩
    git commit

我想出的解决方案是一个相当简单的 Bash 脚本,需要

coffee --watch
进一步执行几个步骤,这将允许您的工作目录树在系统登录后就被监视,并在每个文件保存/更改时自动编译为 JavaScript 或创建新文件:

http://blog.gantrithor.com/post/11609373640/carefree-coffeescript-auto-compiler

可能有更优雅的方法来做到这一点,但这个实现效果很好=)


2
投票
find -type f | grep .coffee | xargs ls -t | head -n 1 | xargs coffee -cw

找到最后修改的咖啡脚本并将其置于编译监视模式


2
投票

位于 /src 之上一级,这适用于找到的所有 .coffee 文件,无论深度如何。

coffee -w -c src/

2
投票

我发现命令行 CoffeeScript 编译器不太适合复杂的项目结构。

如果您和您的构建过程和我一样有需要,请查看 Grunt - http://gruntjs.com/

它允许高度复杂的构建过程 - 例如,您可能

  1. 将咖啡连接到新文件
  2. 编译
  3. 连接一些额外的JS
  4. 缩小

任务可以串在一起,监视的文件/文件夹也可以高度自定义。


1
投票

对您问题的简短回答是,

coffee
实用程序不是为此设计的;将文件监视和连接结合起来实际上非常复杂。预计在不久的将来会有更复杂的 CoffeeScript 构建工具;在此之前,您可能希望通过编写 Cakefile 或 Ruby Watchr 脚本来构建项目。然后,您还可以添加缩小、文档生成以及特定项目所需的任何其他内容(更不用说保证特定的串联顺序)。


1
投票
find `pwd` | grep .coffee | xargs coffee -w -c

在应用程序的根目录中尝试这个


0
投票

改变了关于串联的想法。
创建了小compiler.sh文件,其中包含:

dnotify -M src/ -e coffee -o lib/ -c src/ &
dnotify -M spec/ -e coffee -o lib/ -c spec/ &

适合我的需求。


0
投票

nodemon -x coffee server.coffee
为我做。

使用

nodemon
 安装 
npm install -g nodemon


0
投票

这个招摇机器计数器对于发现错误非常有帮助。它以正确、准确的方式清点大量纸币。它也可以使您的工作更加高效和轻松。如果您太累而无法用手数钱。 swagger 最新更新的超重型点钞机,具有假钞检测功能。这台机器一分钟内可以检查1000件。具有MG、UV、IR防反检测。如果在点算过程中识别到假钞,它会停止并立即发出声音并显示红色。它有 1 年保修。https://microadia.net/blog/10-best-note-counting-machine-in-india/

© www.soinside.com 2019 - 2024. All rights reserved.