延长风帆0.10 grunt设置

时间:2014-05-11 19:05:15

标签: gruntjs sails.js

我打算在sails(0.10 rc5)grunt构建系统中添加一个任务。

任务/配置/资产versioning.js

module.exports = function(grunt) {

  grunt.config.set('asset-versioning', {
    copy: {
      src: '.tmp/public/min/production.js',
      dest: '.tmp/public/min/production2.js'
    }
  });

  grunt.task.registerTask('asset-versioning', ['copy']);

  grunt.loadNpmTasks('grunt-contrib-copy');
};

任务/注册/ prod.js

module.exports = function (grunt) {
    grunt.registerTask('prod', [
        'compileAssets',
        'concat',
        'uglify',
        'cssmin',
        'sails-linker:prodJs',
        'sails-linker:prodStyles',
        'sails-linker:devTpl',
        'asset-versioning' // Added the task config here
    ]);
};

运行sails lift --prod --verbose后,我收到以下错误:

Grunt :: Warning: Task "asset-versioning" not found.
** Grunt :: An error occurred. **

我缺少什么?


修改

显然我缺少注册我的任务。

grunt.task.registerTask('asset-versioning');添加到第一个文件。我没有收到任何错误,但我的任务没有运行!什么也没发生。

1 个答案:

答案 0 :(得分:0)

好的,你把这一切搞混了。复制是一个预定义的任务,你只需要调整它的配置。转到tasks / config / copy.js并添加自定义配置(在grunt.config.set调用中)

productionfiles: {
  src: '.tmp/public/min/production.min.js',
  dest: '.tmp/public/min/production2.min.js'
}

然后,在tasks / register / prod.js中,确保你调用copy:productionfiles,它会发挥魔力。

<强> Copy.js

module.exports = function(grunt) {

    grunt.config.set('copy', {
        dev: {
            files: [{
                expand: true,
                cwd: './assets',
                src: ['**/*.!(coffee|less)'],
                dest: '.tmp/public'
            }]
        },
        build: {
            files: [{
                expand: true,
                cwd: '.tmp/public',
                src: ['**/*'],
                dest: 'www'
            }]
        },
    productionfiles: {
      src: '.tmp/public/min/production.min.js',
      dest: '.tmp/public/min/production2.min.js'
    }
    });

    grunt.loadNpmTasks('grunt-contrib-copy');
};

<强> Prod.js

module.exports = function (grunt) {
    grunt.registerTask('prod', [
        'compileAssets',
        'concat',
        'uglify',
        'cssmin',
        'sails-linker:prodJs',
        'sails-linker:prodStyles',
        'sails-linker:devTpl',
        'sails-linker:prodJsJade',
        'sails-linker:prodStylesJade',
        'sails-linker:devTplJade',
        'copy:productionfiles'
    ]);
};