gpt4 book ai didi

ruby - 如何在子目录中制作 Guard 监视文件

转载 作者:数据小太阳 更新时间:2023-10-29 08:49:01 25 4
gpt4 key购买 nike

我正在尝试让 Guard 将我的 CoffeeScript 文件编译为 JS 文件,然后让 Juicer 合并并缩小它们。我使用 tmp 目录来存储中间 JS 文件。据我了解,这应该可行,但它不起作用:

guard :coffeescript, :input => "src/coffee", :output => "tmp"

guard :shell do
watch %r{^tmp/.+\.js$} do
system 'juicer', 'merge', 'tmp/app.js', '-sfo', 'js/app.js'
end
end

每次触摸 CoffeeScript 文件时,它们都会正确编译到 tmp 目录中,但是 shell 守卫不会触发。

使用 --debug 启动守卫并手动更改 tmp 中的一个 JS 文件,我没有在终端中看到任何调试行。这些文件似乎没有受到监控。

$ guard --debug
18:53:51 - DEBUG - Command execution: which notify-send
18:53:51 - DEBUG - Command execution: emacsclient --eval '1' 2> /dev/null || echo 'N/A'
18:53:51 - INFO - Guard is using TerminalTitle to send notifications.
18:53:51 - DEBUG - Command execution: hash stty
18:53:51 - DEBUG - Guard starts all plugins
18:53:51 - DEBUG - Hook :start_begin executed for Guard::CoffeeScript
18:53:51 - DEBUG - Hook :start_end executed for Guard::CoffeeScript
18:53:51 - DEBUG - Hook :start_begin executed for Guard::Shell
18:53:51 - DEBUG - Hook :start_end executed for Guard::Shell
18:53:51 - INFO - Guard is now watching at '/home/tobia/my_project'
18:53:51 - DEBUG - Start interactor
[1] guard(main)>

^^^ 如果我此时修改 /home/tobia/my_project/tmp 中的 JS 文件,则没有任何反应。

我使用的是 Debian 稳定版的 Ruby 1.9.1、Guard 1.8.2 和 Guard-shell 0.5.1,安装时使用 sudo gem install

最佳答案

经过一些调查,我意识到 tmp 是默认的 ignore列表,所以这就是 Guard 不从生成的 JavaScript 文件中获取更改的原因。要解决此问题,您可以...

1。从忽略的目录列表中删除 tmp

ignore! /.git/

guard :coffeescript, :input => "src/coffee", :output => "tmp"

guard :shell do
watch %r{^tmp/.+\.js$} do
system 'juicer', 'merge', 'tmp/app.js', '-sfo', 'js/app.js'
end
end

2。将 JavaScript 编译到不同的目录

guard :coffeescript, :input => "src/coffee", :output => "src/js"

guard :shell do
watch %r{^src/.+\.js$} do
system 'juicer', 'merge', 'tmp/app.js', '-sfo', 'js/app.js'
end
end

关于ruby - 如何在子目录中制作 Guard 监视文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18493930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com