javascript - 咕噜声 : abstracting away some tasks

标签 javascript gruntjs npm

我有一个包含大量繁重任务的项目,这些任务基本上正在构建一个功能齐全的 Assets 管道(转换、源映射、缩小、md5 文件名愿景)。大多数任务都是我在 github 上找到的开源任务,但也有一些任务是我刚刚用 grunt.registerTask“内联”的。

现在我想创建第二个也使用此任务的项目,但我找不到如何为使用其他任务的 Grunt 创建 npmTask 的正确方法,因为它就像 Grunt 从未为此设计一样。如何创建这样的东西?也许 github 上有一些项目做了类似的事情,我可以看看他们的设计?

最佳答案

您需要创建并加载自己的 grunt 任务 - 实际上非常简单。

  1. 创建任务 - 官方文档有一个调用另外两个任务的示例:http://gruntjs.com/creating-tasks#custom-tasks 。将以下内容放入您的 Gruntfile 中:

    grunt.registerTask('hello', function() {
      grunt.log.write('hello');
      grunt.task.run(['task1', 'task2'])
    });
    
  2. 然后通过一些包装器代码将该任务移动到其自己的文件和文件夹中(例如 tasks/hello.js)

    'use strict';
    
    module.exports = function(grunt) {
      grunt.registerTask('hello', function() {
        grunt.log.write('hello');
        grunt.config.set('task1.opt1', 1234);
        grunt.task.run(['task1', 'task2'])
      });
    };
    
  3. 然后加载 Gruntfile.js 中的任务文件夹

    grunt.loadTasks('tasks');
    

关于javascript - 咕噜声 : abstracting away some tasks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34509720/

相关文章:

Javascript onkeydown 函数

javascript - 使用 grunt 在静态服务器上运行 Qunit 测试时遇到问题

javascript - grunt Jasmine Node 测试运行两次

node.js - npm install 安装,但 node_modules 为空

node.js - 从 Gruntfile.js 迁移到 gulpfile.js

javascript - NodeJS 将图像流转换为 base64 给出无效数据

javascript - 只有元组时如何从 JSON 将数据加载到 D3 图表

c++ - "error MSB8020: The build tools for v141 (Platform Toolset = ' v141 ') cannot be found"尝试安装 npm 模块 scrypt

javascript - Javascript 中哈希的 Rails 哈希

javascript - 使用 grunt-json-bake 将多个 json 文件编译成一个