gpt4 book ai didi

javascript - 将 load-grunt-config 与 Sails.js 结合使用

转载 作者:太空宇宙 更新时间:2023-11-04 00:55:37 24 4
gpt4 key购买 nike

上下文

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

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

问题

sails 无法升起。调试器显示:

debug: --------------------------------------------------------
error: ** Grunt :: An error occurred. **
error:
------------------------------------------------------------------------
ERROR
>> Unable to process task.
Warning: Required config property "clean.dev" missing.

问题显然与 grunt 有关,因此我尝试 grunt build (它会自动与 sails lift 一起运行):

Running "clean:dev" (clean) task
Verifying property clean.dev exists in config...ERROR
>> Unable to process task.
Warning: Required config property "clean.dev" missing. Use --force to continue.

由此,我发现这是一个路径问题。让我们看一下我添加的文件。

/tasks/register/customTask.js

此处的任务加载 load-grunt-config ,这是我的问题的根源:

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 语句。

You can find more information about custom Grunt tasks here .

关于javascript - 将 load-grunt-config 与 Sails.js 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30007359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com