Javascript 将load grunt配置与Sails.js一起使用 上下文
我已经编写了一些grunt任务,我想将它们用于我正在Sails.js中编写的一个新项目 使用Sails.js,您可以通过将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:
/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'
]);
});