问题标签 [grunt-contrib-watch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 拆分 grunt watch 任务
所以我有5个grunt-contrib-watch
任务:
- sass 编译 sass 文件
- testConcat 连接测试
- implementationConcat 连接实现文件以进行测试
- 预编译车把模板的模板
- karma 启动 karma 测试运行
我知道grunt watch
会看所有的,但我真的需要把它们分成两组——前四个是我的设计师运行静态服务器并做 sass 工作的时候,后两个是我做 js 工作的时候.
我grunt-concurrent
过去常常将它们分开并同时运行它们,但是虽然这有效,但它似乎有点像黑客。我错过了什么吗?
javascript - Grunt:查看多个文件,仅编译更改 - livereload 中断?
我完全是 Grunt 和 Javascript/Coffeescript 的新手。
我们在一个包含数百个 .coffee 文件的大型项目中使用 Grunt。由于 Grunt 编译了所有的咖啡文件(尽管只有一个文件发生了变化),我最初的问题是如何让 Grunt 只编译一个已更改的文件。使用stackoverflow我能够回答这个问题,谢谢大家:)
但现在看来,实施的解决方案打破了 livereload。当我从“grunt server”开始并在浏览器中显示我的页面时,一切看起来都很好。然后我更改一个 .coffee 文件并保存它。该文件被编译(我检查过),但我的浏览器永远不会重新加载。只有当我手动重新加载浏览器时,才会显示新的修改代码。
所以问题是:为什么 livereload 不再起作用?
我不知道这是否重要,但 Gruntfile 是使用 yeoman 在旧版本中创建的(使用 grunt-regarde)。我使用 grunt-contrib-watch 和 buildin livereload 将 package.json 和 Gruntfile 更新为更新的规范。没有grunt.event.on
一切工作正常。
来源(部分):
grunt-contrib-watch 与 version 一起使用v0.4.4
,connect-livereload 与 version 一起使用0.2.0
gruntjs - 如何同时运行两个 grunt watch 任务
是否可以同时运行两个监视任务?
我知道我可以在手表设置中执行任意数量的任务,只需启动grunt watch它就会监视所有这些,就像这样
...但我不需要这个。我只想有不同的开发和生产任务集。您可以猜到, A(生产)和B (开发)之间的唯一区别是缩小和连接。我不需要同时启动A和B任务。
首先我带着这个想法
但这没有用。只是首先观察任务正在工作(C从不工作)。有可能做我想做的事吗?
gruntjs - Grunt 手表不运行
我一直无法弄清楚如何运行 grunt-contrib-watch。按规定运行grunt watch
只会导致:
然后我再次回到我的命令提示符,没有监视进程阻止输入,也没有显示在任务管理器中;从昨晚开始,我一直在搞砸这个问题,但仍然无法弄清楚我做错了什么。这是我的gruntfile;我正在使用 Windows 7 机器,如果有帮助的话。
gruntjs - 是否可以在监视任务之后运行任务?
我有一个不能在grunt-php上运行的基于 PHP 的项目。相反,我使用grunt-exec来运行我的 MAMP 服务器进行开发。
在我的自定义开发任务中,我在监视任务之前运行 MAMP 启动脚本。然后,我在退出监视任务后尝试停止 MAMP 服务器。
但是,如果我使用 Ctrl-C 退出任务,该exec:serverdown
任务似乎永远不会运行。有什么办法可以使这项工作?由于服务器永远不会关闭,因此在我手动运行停止脚本之前,该端口被占用,如果我在关闭之前尝试再次运行默认任务,则会出现错误。
如果没有,还有其他方法可以完成同样的事情吗?
gruntjs - 如何让 grunt-watch 重新加载正确的 css 文件?
我的目标是在我保存对样式表的更改时使用 grunt-watch 实时重新加载我的样式表。
我的咕噜声文件在下面。
当我运行 grunt 时,文件正在按预期进行监视,但没有重新加载正确的 css 文件。
我可以在 Chrome 开发工具中看到 | 一些样式表正在实时重新加载的“网络”选项卡。
但是,一些样式表没有被实时重新加载,包括我正在更改的那个。
我究竟做错了什么?我的“文件”选项值有错误吗?
gruntjs - grunt:当在 registerTask 方法中包含其他任务时,watch 命令永远不会运行
我的 Gruntfile 出现了一些意外行为。我已经注册了一个看起来像这样的任务:grunt.registerTask('dev', ['jekyll:server', 'watch:jekyll'])
希望它会顺序启动一个 jekyll 服务器,然后监视我的项目是否有特定的文件更改(使用grunt-contrib-watch
插件)。一旦检测到这些更改,它将jekyll:server
自动重新运行。
我遇到的问题是,当我运行时grunt dev
,它会启动 Jekyll 服务器,但不会运行watch
命令。但是,如果我从中删除服务器任务grunt dev
,它将watch
按预期运行命令。
下面是我的 Gruntfile 的内容。谁能帮我理解发生了什么?
javascript - Gruntjs - 监视大量子目录和文件的变化
我最近才开始使用 grunt.js,我想知道是否可以监视大型文件夹结构的变化?
它在小型项目文件夹结构中对我来说很好,但是当尝试观看像 magento 或 wordpress 这样的整个系统甚至其中的一部分时,它只是挂在那里并且没有发现任何变化。
难道我做错了什么?
这是我的 gruntfile.js:
如果您熟悉 magento,则 gruntfile 位于
D:\wamp\www\magento\app\design\frontend\myTheme\default\
并在“模板”文件夹中查找文件更改。
“模板”文件夹中有 404 个文件和 242 个文件夹。公平地说,这并不多……我不明白为什么它几乎没有立即找到更改而只是挂起。
当仅将一个子目录(例如:/page 包含 25 个文件和 4 个文件夹)添加到 gruntfile 文件源引用时,它会立即找到更改。
例子:
我希望我能够清楚地通过我的问题。如果有不清楚的地方请告诉我。
感谢您的时间!
node.js - 如何根据文件更改修改 grunt watch 任务?
我正在编写一个 node.js 程序,它将监视一个充满大量(300-ish)scss 项目的目录。Grunt-watch(通过 node 模块运行或单独运行,无论工作如何)将被配置,以便每当更改 scss 文件时,它将使用 compass 编译,输出文件移动到单独的目录,例如:
./1234/style.scss 已更改 >> grunt-watch 运行 grunt-compass >> /foo/bar/baz/1234/style.css 已更新
文件所在的项目目录显然非常重要(如果 grunt-compass 将所有编译后的文件都发送到同一个目录,它们将变得混乱且无法使用,并且 grunt 自动化将毫无目的)。我为了确保所有文件都被路由到正确的位置,每次更新 css 文件时我都会动态更改 grunt-compass 设置。
示例 gruntfile:
但是,这不起作用。如果您在详细模式下运行“grunt watch”,您将看到 grunt 在单独的进程中运行 grunt.event.on 函数和 watch 任务。gruntfile 的第二次解析将我的所有 event.on 配置更改恢复为上面的默认值,并且 compass 无法运行。
正如在 event.on 评论中看到的那样,我尝试添加一个 grunt.task.run() 以确保 compass 与 event.on 函数在同一进程中运行,这将保留我的配置更改。但是任务拒绝运行,可能是因为我做错了。
不幸的是,grunt.event.on 变量没有发送到定义的 grunt-watch 任务,否则我可以编写一个自定义函数来更改罗盘设置,然后在同一进程中运行罗盘。
我已经尝试在没有 grunt 的情况下实现这一点,使用内置于 compass 的 watch 功能,但是 compass 只能为每个项目存储一个静态输出路径,并且一次只能观看一个项目。
我目前已经通过添加一个节点程序来解决这个问题,该程序将站点名称作为参数,通过使用 fs 运行重写 grunfile.js,然后通过 exec 函数运行“grunt watch”。然而,这有它自己的缺点(我无法查看 grunt.log 数据)并且非常复杂,所以我想改变它。
非常感谢您的任何见解。
node.js - 如何获取 grunt-watch 调用的任务来保存配置数据?
在 Grunt 中,我定义了一个server
加载一些配置数据并调用grunt.config.set
保存它的任务。然后,它运行一些其他任务,其中watch
. 反过来,该任务会在文件更改replace
时调用该任务。.html
现在,我的问题是在replace
任务中,我似乎无法访问server
任务中加载的配置数据。我如何确保它可以访问它?