Gruntjs:如何使复制任务仅复制手表上已更改的文件

2024-01-17

因此,在 grunt-contrib-watch 插件信息页面上,有一个关于如何使 jshint 仅针对更改的文件运行的示例。

grunt.initConfig({
  watch: {
    scripts: {
      files: ['lib/*.js'],
      tasks: ['jshint'],
      options: {
        nospawn: true,
      },
    },
  },
  jshint: {
    all: ['lib/*.js'],
  },
});

grunt.event.on('watch', function(action, filepath) {
  grunt.config(['jshint', 'all'], filepath);
});

我还没有测试过它自己的例子。但我把这个应用到我的复印任务中,但没有成功。 grunt-contrib-copy 任务设置为复制我的角度项目的图像和模板。我很高兴知道我是否可以使这项工作用于复制任务,如果可以,我做错了什么。

太感谢了。

这是我剥离的 Gruntfile.js。

// Build configurations.
module.exports = function(grunt){

  // Project configuration.
    grunt.initConfig({

      pkg: grunt.file.readJSON('package.json'),

      // Copies directories and files from one location to another.
      copy: {
        // DEVELOPMENT
        devTmpl: {
          files: [{
            cwd     : 'src/tpl/',
            src     : ['**/*'], 
            dest    : 'app/tpl/',
            flatten : false,
            expand  : true
          }]
        },
        devImg: {
          files: [{
            cwd     : 'src/img/',
            src     : ['**/*'], 
            dest    : 'app/img/', 
            flatten : false,
            expand  : true
          }]
        }
      },

      // Watch files for changes and run tasks 
      watch: {
        // Templates, copy
        templates: {
          files : 'src/tpl/**/*',
          tasks : ['copy:devTmpl'],
          options: {
            nospawn: true,
          }
        },
        // Images, copy
        images: {
          files : 'src/img/**/*',
          tasks : ['copy:devImg'],
          options: {
            nospawn: true,
          }
        }
      }

    });

  // Watch events
    grunt.event.on('watch', function(action, filepath) {
      // configure copy:devTmpl to only run on changed file
      grunt.config(['copy','devTmpl'], filepath);
      // configure copy:devImg to only run on changed file
      grunt.config(['copy','devImg'], filepath);
    });

  // PLUGINS:
    grunt.loadNpmTasks('grunt-contrib-copy');


  // TASKS:

    /* DEV: Compiles the app with non-optimized build settings, places the build artifacts in the dist directory, and watches for file changes.
    run: grunt dev */
    grunt.registerTask('dev', 'Running "DEVELOPMENT", watching files and compiling...', [
      'default',
      'watch'
    ]);

    /* DEFAULT: Compiles the app with non-optimized build settings and places the build artifacts in the dist directory.
    run: grunt */
    grunt.registerTask('default', 'Running "DEFAULT", compiling everything.', [
      'copy:devTmpl',
      'copy:devImg'
    ]);

}

使用 grunt 同步(https://npmjs.org/package/grunt-sync https://npmjs.org/package/grunt-sync) 而不是 grunt-contrib-copy,并观察要同步的目录。

更新 - 这是一个例子:

grunt.initConfig({
  sync: {
    copy_resources_to_www: {
      files: [
        { cwd: 'src', src: 'img/**', dest: 'www' },
        { cwd: 'src', src: 'res/**', dest: 'www' }
      ]
    }
  }
});

cwd 表示当前工作目录。 copy_resources_to_www 只是一个标签。

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

Gruntjs:如何使复制任务仅复制手表上已更改的文件 的相关文章

  • Grunt-browserify+mapify+coffeescript = 未通过相对路径找到模块

    我尝试让 grunt browserify 使用 Coffeescript 的相对路径 但当我尝试构建源代码时总是收到错误消息 gt gt Error module src app utils includeMixin not found
  • AngularJS with Grunt - 连接到另一台服务器

    我使用 grunt bower 和 yeoman 创建了一个 AngularJS 应用程序 我猜想 Gruntfile js 在 2014 年 1 月之后发生了变化 不确定 这是我的gruntfile js Generated on 201
  • 用 C# 编写插件或插件框架

    我正在用 C 编写一个 Addin 框架 我想知道如何使 Addin 可以卸载而无需重新启动应用程序 我听说过 AppDomains 但是它们是如何工作的呢 外接程序是否可以添加可扩展性类并通过接口在主应用程序域中调用 并且仍然可卸载并调用
  • macOS Pluginkit 输出中的前缀是什么意思?

    执行中pluginkit match在终端中产生以下输出 跳过不重要的行 com apple ncplugin weather 1 0 com apple share SinaWeibo post 1 0 H com apple Inter
  • 无法在 yeoman Angular 生成的 Web 应用程序中生成“dist”文件夹

    我无法生成dist使用 yeoman 角度生成器构建和生成的 Web 应用程序中的文件夹 我正在粘贴 grunt 构建的详细内容 请检查这是否有帮助 pdc1 f3t18r1 ShippingSolution administrator g
  • 使用自定义 cordova 插件未找到类异常

    我正在开发一个打印应用程序 它使用自定义 API 通过 USB 访问打印机 因此我需要一个自定义 Cordova 插件 我开始开发它 这是一个非常好的挑战 但目前也非常令人沮丧 因为我不明白为什么我的插件不能正确使用 事情是 1 插件安装正
  • Node WebKit 和 YouTube:chrome 未定义

    我正在开发一个应用程序Android iOS Mac OS and Windows using PhoneGap and Node WebKit 该应用程序已嵌入youtube videos These youtube视频在我的中运行良好M
  • 我可以通过什么方式混合 jQuery 和 vanilla JavaScript

    我有一个用普通 JavaScript 编写的 Web 应用程序 我想用 jQuery 动画来增强它 并使用我在各种 jQuery 插件中找到的一些功能 例如上传 http www uploadify com 可以通过什么方式将 jQuery
  • 加载依赖于另一个域的程序集时 FileNotFound [重复]

    这个问题在这里已经有答案了 我正在尝试使用插件制作应用程序 我有 MainLib dll 我在其中制作了一些通用接口 让它成为ICommon 用 1 种方法 然后 我制作了 2 个 dll 插件 它们引用了 MainLib dll 并实现了
  • 如何在Java中执行特定时间段的任务?

    事实上 我会在确定的时间内执行特定的任务 一组指令 例如 我希望我的程序执行任务 5 分钟 如果它得到正确的结果 它会停止 否则它将继续执行正常任务 5 分钟 最后它告诉我 我怎样才能用Java实现这个 你可以像下面这样 import ja
  • 只能加载NetBeans中的一些gradle项目

    非常类似于 无法在 NetBeans 中加载 gradle 项目 https stackoverflow com q 17698135 262852但我认为并不完全相同 即使只是因为这个问题的年龄 我看到了 gradle 消息after h
  • jQuery - 检测鼠标是否静止?

    我想知道是否有一种方法可以检测 jQuery 中鼠标是否空闲了 3 秒 是否有我不知道的插件 因为我不相信有一个原生的 jQuery 方法 任何帮助将非常感激 您可以收听mousemove事件 每当发生时启动超时并取消任何现有超时 var
  • 等待异步 grunt 任务完成

    我收到了 grunt 设置 其中一个新任务应该执行 grunt task run 已经存在的任务 要执行的任务是异步的 新任务应该等待异步任务完成 执行此操作的首选方法是什么 grunt 已经涵盖了这一点 你应该将你的任务声明为异步任务 并
  • 如何为新任务类型扩展 Gradle 任务的行为?

    我想为一些测试任务设置一些东西 更具体地说 我想添加一些环境变量和一些系统属性 也许还有一些其他内容 例如 依赖项 或 workingDir 与常规的Test任务我可以做到这一点 task test1 type Test dependsOn
  • Sails JS 在视图中包含节点模块

    我正在使用帆 http sailsjs com http sailsjs com 开发一个小平台 按照文档 一切都很顺利 但是作为这个 javascript 框架世界和 npm 等的新手 我在包含其他 node modules 并在 ejs
  • eclipse.ui.menus 的名称过滤器

    我有一个菜单贡献 通过实现org eclipse ui menus扩展点 我想仅为特定文件扩展名 例如 pld 提供此菜单贡献 但我不知道如何使用 visibleWhen 来做到这一点 有任何想法吗 更新 到目前为止我的扩展点
  • SonarQube 将所有问题添加为 Code Smell

    升级到 5 5 版本后 现在最新的 5 6 SonarQube 总是将我通过插件创建的问题显示为 Code Smell 我想了解有关分类的更多信息以及如何将它们添加为其他类型 漏洞 和 错误 我创建问题的代码如下 Issuable issu
  • 如何创建浏览器插件?

    我必须创建一个插件 当用户将鼠标悬停在某些术语上时 该插件必须显示信息 谁能告诉我如何做的方向 我对创建插件没有太多想法 我知道我想要做的事情可以通过java脚本来完成 但是java脚本文件可以作为浏览器插件安装吗 任何对此的想法将不胜感激
  • 等待 AsyncMethod() 与等待等待 Task.Factory.StartNew(AsyncMethod)

    给出以下方法 public async Task
  • 如何启动异步任务对象

    我想开始收集Task同时处理对象并等待所有对象完成 下面的代码显示了我想要的行为 public class Program class TaskTest private Task createPauseTask int ms works w

随机推荐

  • Numpy 相邻元素之间的差异

    我有纯Python中相邻元素之间差异的计算算法 a range 1000000 it s numpy array in my case prev a 0 b 0 for i in a 1 b append i prev prev i 有没有
  • 数据表scrollX水平不起作用

    我有以下表格 其中包含 10 多列 我正在使用数据表来显示数据 我使用水平滚动 因为我有很多列 但卷轴没有显示出来 请帮忙 这是我的桌子的屏幕截图 滚动不起作用 https i stack imgur com HBGF9 png table
  • 静态成员函数的模板特化;如何?

    我正在尝试使用模板专业化以不同的方式实现带有 void 句柄的模板函数 以下代码为我提供了 gcc 中的 非命名空间范围内的显式专业化 template
  • XNA 在运行时在 Texture2D 上绘制/绘制

    早安 如果你所在的地方是早上的话 我一直在环顾四周 但没有找到令人满意的方法 所以我想我会四处询问 理想的世界我希望能够生成一个透明的Texture2D对象 将其绘制到屏幕上我希望能够 绘制 它 即当鼠标左键按下时 光标所在的任何像素都应设
  • 在 AngularJS 服务中编写函数

    我想在 angularjs 服务中编写一个函数 并且我想在我的所有服务中重用它 控制器 var mod angular module myapp eventFilters highlight event dayfilter Services
  • 数字在数组中出现的次数

    我在一本 C 书中找到了一个练习 上面写着 编写一个函数来计算一个数字在数组中出现的次数 一切都很好 程序正在运行 但练习还表明该函数应该是递归的 我怎样才能使递归函数像这样工作 include
  • 是否定义了两个 NULL 指针相减的行为?

    如果两个非 void 指针变量都是定义的 根据 C99 和 或 C 98 它们之间的区别是NULL valued 例如 假设我有一个如下所示的缓冲区结构 struct buf char buf char pwrite char pread
  • 函数式反应式编程语言规范

    我正在考虑在某个时候创建 一个功能性反应框架 我已经阅读了很多相关内容并看到了一些示例 但我想清楚地了解这个框架必须做什么才能被视为 FRP 扩展 dsl 我并不真正关心实施问题或细节等 但更关心完美世界情况下需要什么 理想的函数式反应式编
  • Zapier频繁10.01秒超时

    我从 Zap 获取数据 从中构造一个 http 请求的 xml 正文 并将该 http 请求发送到基于 SOAP CRM 的外部服务器 该脚本通常会成功运行 但偶尔会出现错误 Traceback most recent call last
  • 为什么 getElementsByTagName() 总是返回一个数组?

    为什么如果我只有一个h1文档中的元素 我还必须使用索引来访问吗 就像下面这样不行 document getElementsByTagName h1 innerHTML SHUSHAN 但如果我这样做 document getElements
  • 使用 Workbench 创建新的 MySQL 数据库

    我只是想用一些简单的表创建一个新的 MySQL 数据库 我在 Workbench 中创建了一个新的 EER 模型 因此我对我想要的数据库进行了建模 其中包含我需要的所有表 字段 我没有看到任何方法可以采用模型并从中创建实际的数据库 现在它刚
  • R - trunc() 函数对于具有大量小数的浮点数不一致?

    我有 R 版本 4 1 2 2021 11 01 它似乎trunc 当输入数字有大量小数值时 函数不一致 trunc 3 99999999999999977799999999999999999999900 1 4 trunc 3 99999
  • 在非 UI 线程上实例化视图

    我知道 UI 元素 视图层次结构 只能从 UI 线程进行操作 对于后台操作 可以使用 AsyncTask 它提供事件处理程序来到达 UI 线程 简而言之 是否允许实例化视图 绑定到getApplicationContext 在非 UI 线程
  • 离线时本地存储数据的最佳方法

    我正在编写一个小程序 更多的是与 2010 相比进行实验 尽管是一个实验 但它对我们当地的体育俱乐部有一些实际用途 我的想法是访问数据库 当前在线 以下载当前会员并本地存储在笔记本电脑上 这是一个 MS sql 表 用于为俱乐部网站提供支持
  • 如何在R中的列表中组合不同长度的向量?

    我在组合列表中包含的以下向量时遇到问题 x lt list as numeric c 1 4 as numeric c 3 19 11 names x 1 lt c species A species C names x 2 lt c sp
  • 在 MVC2 中使用不同的端口与 RequireHttps 过滤器

    是否可以使用 RequireHttps 使用 443 以外的其他端口进行过滤 我找不到太多关于它的文档 史蒂夫 桑德森的方法 http blog stevensanderson com 2008 08 05 adding httpsssl
  • 简单的 Scala 序列化?

    我想在 Scala 中进行序列化 我见过类似的sjson https github com debasishg sjson和 serialized 注释 然而 我一直无法看到如何让它们处理 1 个主要障碍 库中的类型擦除和泛型 以Scala
  • Android L 设备不向 Android Wear 智能手表发送通知卡

    我正在尝试在单击按钮时向 Android Wear 智能手表发送通知 它适用于我测试过的所有设备 除了 Android L 的设备 有谁知道可能是什么问题吗 我什至将这些设备与 Android Wear SmartWatch 模拟器配对 但
  • 潜在的空指针访问

    我遇到了一个目前我不太清楚的奇怪情况 当有潜在的空指针访问在 Eclipse 中启用警告 我收到如下警告 警告位于相应注释之前的行 protected Item findItemByName String itemName Items it
  • Gruntjs:如何使复制任务仅复制手表上已更改的文件

    因此 在 grunt contrib watch 插件信息页面上 有一个关于如何使 jshint 仅针对更改的文件运行的示例 grunt initConfig watch scripts files lib js tasks jshint