Coffeescript和节点主pipe一起?
我正在使用带有–watch选项的coffeescript来对.coffee文件的更改重buildjavascript。
将它与节点监控器结合起来,以便在编译的JavaScript更改时重新启动节点是否安全?
我担心,当coffeescript重新编译多个文件时,由于primefaces性的原因,它不会健壮。 节点监督员可以跳过这个枪,并重新启动节点检测到第一个文件系统的变化。 是否足够强大,以确认在重新启动节点时还有其他更改?
有没有更好的办法? 理想情况下,我只有一个文件系统观察器重新编译我的咖啡脚本和重新启动节点。
您可以使用nodemon,它甚至有一个延迟function(在几秒钟后重新启动服务器),例如:
nodemon --debug ./server.coffee 80
nodemon的另一个优点是忽略文件,例如:
# this is my ignore file with a nice comment at the top /vendor/* # ignore all external submodules /public/* # static files ./README.md # a specific file *.css # ignore any CSS files too
除此之外,请阅读有关github repo的文档,并观看关于nodemon的这个Nodetutsvideo: http ://nodetuts.com/tutorials/14-some-nodejs-tools.html
创build一个JavaScript启动器,即run.js
,像这样:
require('coffee-script'); require('./launch');
然后用pipe理员和适当的选项运行这个文件:
supervisor -e "node|js|coffee" run.js
这在Windows上适用于我。
你可以使用-x
选项设置为coffee
supervisor
。 这将使它能够以正确的可执行文件运行脚本:
supervisor -x coffee your-script.coffee
受Lemming的答复启发。
在我的一些Cakefiles中,比如连接资产的 Cakefiles,我自己做了一些观察,并且每次改变时都会产生一些coffee -co lib src
,然后在subprocess完成时重新启动服务器。 这解决了primefaces性问题。 如果每个.coffee
文件同时更改(或者如果您升级coffee
运行时),所有的JS文件也会一次更新。
我的工头为中心的解决scheme如下所示:
Procfile.dev
web: ./node_modules/supervisor/lib/cli-wrapper.js -n exit server.js watch: ./node_modules/iced-coffee-script/bin/coffee --watch --compile server.iced
然后只是foreman start -f Procfile.dev
然后gitignore
生成的.js
文件。 我喜欢这种方法,因为它保留了一个不断更新的vanilla JS文件以及我的.iced
文件,所以我可以随时检查我的工作(我绝对会在coffeescript中犯错误,我可能不会在香草中)。