如何让 grunt-watch 在不同的构建任务下实时重新加载 HTML 更改

2024-02-04

我可以通过执行以下操作轻松设置 Grunt 文件以实时重新加载 HTML 和 SCSS 更改:

watch: {
    options: {
        livereload: true,
    },
    css: {
        files: ['scss/*.scss'],
        tasks: ['compass']
    },
    html: {
        files: ['index.html'],
        tasks: ['build']
    }
}

但是,我有一个开发环境的构建任务:dev,以及生产环境的构建任务:build。因此,调用build当 HTML 更改时,将构建用于生产的网站,如果我只想要开发版本,这不是我想要的。

理想情况下我会做类似的事情:

watch: {
    options: {
        livereload: true,
    },

    dev: {
        html: {
            files: ['<%%= yeoman.app %>/*.html',
                    '<%%= yeoman.app %>/**/*.html'],
            tasks: ['dev']
        },

        css: {
            files: ['<%%= yeoman.app %>/assets/scss/*.scss'],
            tasks: ['compass']
        }
    },

    dist: {
        html: {
            files: ['<%%= yeoman.app %>/*.html',
                    '<%%= yeoman.app %>/**/*.html'],
            tasks: ['build']
        },

        css: {
            files: ['<%%= yeoman.app %>/assets/scss/*.scss'],
            tasks: ['compass'],
        }
    }
}

从而能够调用watch:dev or watch:dist,但是这段代码不起作用。

我能想到的唯一解决方法是:

…
    dev: {
        files: ['<%%= yeoman.app %>/*.html',
                '<%%= yeoman.app %>/**/*.html',
                '<%%= yeoman.app %>/assets/scss/*.scss'],
        tasks: ['dev']
    },

    dist: {
        files: ['<%%= yeoman.app %>/*.html',
                '<%%= yeoman.app %>/**/*.html',
                '<%%= yeoman.app %>/assets/scss/*.scss'],
        tasks: ['build']
    }
…

再次打电话watch:dev or watch:dist,但这样做的缺点是,当我只更改少量 SCSS 时,我不想重建整个站点。

有什么办法可以实现我所追求的目标吗?


尝试动态别名任务:

grunt.registerTask('watchit', function(type) {
  grunt.config('watch.html.tasks', type);
  grunt.task.run('watch');
});

然后调用它grunt watchit:build or grunt watchit:dev在两者之间切换。

更多信息请点击这里:http://gruntjs.com/frequently-asked-questions#dynamic-alias-tasks http://gruntjs.com/frequently-asked-questions#dynamic-alias-tasks

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 grunt-watch 在不同的构建任务下实时重新加载 HTML 更改 的相关文章

随机推荐

  • 字符串枚举的反向映射

    我想在打字稿中使用字符串枚举 但我看不到其中对反向映射的支持 我有一个这样的枚举 enum Mode Silent Silent Normal Normal Deleted Deleted 我需要像这样使用它 let modeStr str
  • 了解firebase的createUser函数(特别是android库)

    因此 我从 firebase 文档中获得了以下代码 我已经在我的应用程序中实现了它并且工作正常 Firebase ref new Firebase https myapp firebaseio com ref createUser emai
  • 如何直接播放内存中的WAV数据?

    我目前正在进行一项声音实验 遇到一个问题 我将一组波形数据保存到 wav 文件并播放它 但有没有办法跳过这一步并直接从内存中播放声音 我正在寻找一种可以跨平台工作的解决方案 我想你正在使用波库 http docs python org li
  • Play Framework 的 ScalaRouting 中的依赖注入路由器和静态路由器有什么区别?

    Play Framework 的 ScalaRouting 中的依赖注入路由器和静态路由器有什么区别 Play 框架文档指示在使用 Play 种子激活器模板创建新的 Play 应用程序时使用依赖项注入路由器 但我仍然对这两个路由器感到困惑
  • https createServer,加载cookie并加载客户端index.html

    我正在尝试在网站上设置登录系统 为此 我必须加载仅 http 的 cookie 为了加载它们 我必须在 https 启动时通过 createServer 函数中的响应对象将它们发送回客户端 我已经通过这里成功做到了这一点 在nodejs中设
  • 如何编写与 Python 2 和 Python 3 兼容的异常重新引发代码?

    我正在尝试使我的 WSGI 服务器实现与 Python 2 和 Python 3 兼容 我有以下代码 def start response status response headers exc info None if exc info
  • 非持久 ActiveRecord 模型属性

    我想向现有模型添加一些不需要保留的属性 甚至不需要映射到数据库列 有没有解决方案来指定这样的事情 当然使用好的老红宝石attr accessor 在你的模型中 attr accessor foo bar 您将能够执行以下操作 object
  • html 高度 100% 被 webview 忽略

    webview 不明白 html height 100 意味着它只显示一个空白页面 然而 在移动浏览器中它工作得很好 谁能帮我 我已经考虑了很多建议 但没有一个有效 正如你在代码中看到的 我特意将 html 背景颜色设置为红色 以便我可以看
  • Telegram 机器人 SSL 错误

    所以我在我的网站上为我的电报机器人制作了一个小脚本 唯一的问题是 如果我将 URL 设置为机器人的 webhook 则会出现 SSL 错误 还尝试添加自签名证书 因此 has custom certificate 变为 true 但出现了相
  • 如果Python命令花费的时间比应有的时间长,则中断命令[重复]

    这个问题在这里已经有答案了 可能的重复 Python 函数调用超时 https stackoverflow com questions 492519 timeout on a python function call 如何在python中实
  • Android:克隆一个可绘制对象以制作带有过滤器的 StateListDrawable

    我正在尝试制作一个通用框架函数 使任何 Drawable 在以下情况下都会突出显示按下 聚焦 选择 等等 我的函数接受一个 Drawable 并返回一个 StateListDrawable 其中默认状态是 Drawable 本身 并且状态为
  • 如何获取magento数据库详细信息[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在magento 中的任何文件中
  • Android 重力传感器(TYPE_GRAVITY)2.1

    我有为 2 3 3 设计的软件 其中使用重力传感器 下面的代码 private SensorManager sman SensorManager getContext getSystemService Context SENSOR SERV
  • MVC3将@model传递给部分视图

    我有两个完全相同的部分视图 但对于 model model 项目 Models X model 项目 Models Y 如何将此模型类型传递给视图 以便我可以对两者使用相同的视图 不确定这是否是最佳实践 但您也可以使用 HTML Rende
  • 如何编写具有多个连接的 Spring Data JPA 规范?

    我正在处理的项目是使用 JHipster 生成的 支持实体过滤 它在底层使用 Spring Data JPA 规范 模型如下 JDL entity Student name String entity Course name String
  • 如何在 Git 存储库中找到具有多个父级的所有提交?

    我正在开展一项研究 研究开源项目中的合并 对于存储库中的每个合并 我需要找到基础 最近的共同祖先 两个贡献者以及生成的合并提交 我已经知道如何获得最近的共同祖先 git merge base rev1 rev2 和贡献者 git log p
  • PyCharm 中 .pyi 文件的类型注释不适用于动态属性

    我的目标是在 Pycharm 编辑器中自动完成 在 Python 控制台中它工作正常 所使用的参数pytransition模块 有关该模块的一些背景信息here https stackoverflow com questions 60195
  • 在 postgresql 中“复制自”期间忽略重复键

    我必须将大量数据从文件转储到 PostgreSQL 表中 我知道它不支持像 MySql 中那样的 忽略 替换 等 网络上几乎所有与此相关的帖子都提出了相同的建议 例如将数据转储到临时表 然后执行 插入 选择 不存在的地方 这在一种情况下没有
  • 创建新的 Rails 操作不起作用?

    我有一个控制器 应用程序 它由一个动作 索引 组成 现在我想添加一个名为 购买 的新操作 def buy respond to do format format html end end 我在视图中添加了 buy html erb 但是当浏
  • 如何让 grunt-watch 在不同的构建任务下实时重新加载 HTML 更改

    我可以通过执行以下操作轻松设置 Grunt 文件以实时重新加载 HTML 和 SCSS 更改 watch options livereload true css files scss scss tasks compass html file