Javascript 将load grunt配置与Sails.js一起使用 上下文

Javascript 将load grunt配置与Sails.js一起使用 上下文,javascript,node.js,gruntjs,sails.js,Javascript,Node.js,Gruntjs,Sails.js,我已经编写了一些grunt任务,我想将它们用于我正在Sails.js中编写的一个新项目 使用Sails.js,您可以通过将js文件添加到/tasks/register文件夹来添加其他grunt任务。在讨论我添加的文件之前,让我们先谈谈这个问题 问题 帆举不起来。调试器显示: debug: -------------------------------------------------------- error: ** Grunt :: An error occurred. ** error:

我已经编写了一些grunt任务,我想将它们用于我正在Sails.js中编写的一个新项目

使用Sails.js,您可以通过将js文件添加到
/tasks/register
文件夹来添加其他grunt任务。在讨论我添加的文件之前,让我们先谈谈这个问题

问题 帆举不起来。调试器显示:

debug: --------------------------------------------------------
error: ** Grunt :: An error occurred. **
error: 
------------------------------------------------------------------------
ERROR
>> Unable to process task.
Warning: Required config property "clean.dev" missing. 
这个问题显然与grunt有关,因此我尝试
grunt build
(它会自动运行
sails lift
):

由此,我了解到这是一个路径问题。让我们看看我添加的文件。

/tasks/register/customTask.js 此处的任务已加载,这是我的问题的根源:

module.exports = function(grunt) {

    // measures the time each task takes
    require('time-grunt')(grunt);
    
    // This require statement below causes my issue
    require('load-grunt-config')(grunt, {
        config: '../../package.json',
        scope: 'devDependencies',
        overridePath: require('path').join(process.cwd(), '/asset-library/grunt')
    });
    
    grunt.registerTask('customTask', [
        'newer:jshint',
        'newer:qunit',
        'newer:concat',
        'newer:cssmin',
        'newer:uglify'
    ]);

};
我曾认为使用
overridePath
而不是
configPath
可以解决我的问题,但遗憾的是,这并不是那么简单。是否有某种方法可以让我像在其他项目中那样使用自己的自定义任务文件夹和
load grunt config
,或者是否有一些神奇的条件让我可以将
require
语句包装起来


我只需要它与
grunt customTask
一起运行,而不需要与
grunt*
一起运行(其他任何东西)。

好的,这实际上非常简单。我所要做的就是从以下内容更改customTask.js文件中的
grunt.registerTask
调用:

grunt.registerTask('customTask', [
    'newer:jshint',
    'newer:qunit',
    'newer:concat',
    'newer:cssmin',
    'newer:uglify'
]);
为此:

grunt.registerTask('customTask', 'My custom tasks', function() {
    // The require statement is only run with "grunt customTask" now!
    require('load-grunt-config')(grunt, {
        config: '../../package.json',
        scope: 'devDependencies',
        overridePath: require('path').join(process.cwd(), '/asset-library/grunt')
    });
    grunt.task.run([
        'newer:jshint',
        'newer:qunit',
        'newer:concat',
        'newer:cssmin',
        'newer:uglify'
    ]);
});
如果不清楚,我必须移动
require('load-grunt-config')
调用,因此如果要复制+粘贴,请确保删除
grunt.registerTask
调用之外的require语句

grunt.registerTask('customTask', 'My custom tasks', function() {
    // The require statement is only run with "grunt customTask" now!
    require('load-grunt-config')(grunt, {
        config: '../../package.json',
        scope: 'devDependencies',
        overridePath: require('path').join(process.cwd(), '/asset-library/grunt')
    });
    grunt.task.run([
        'newer:jshint',
        'newer:qunit',
        'newer:concat',
        'newer:cssmin',
        'newer:uglify'
    ]);
});