我可以得到所有注册模块的列表在我的Gruntfile.js
Can I get a list of all registered modules in my Gruntfile.js
是否可以在我的Gruntfile.js中获得已经注册的任务列表,或者检查是否注册了单个任务名。
我要做的是:将grunt模块配置拆分为单个文件,以便能够轻松地添加和删除它们,最后只加载模块及其配置,如果它们被安装(基于包)。在'matchdep'的帮助下)。到目前为止,这工作得很好。此外,我需要在JSON中定义aliasTask(能够轻松地以编程方式添加新任务)。
问题是,列表可能包含未注册的任务,并且由于grunt如果该任务未注册则抛出错误,因此我必须在调用registerTask之前将它们从列表中过滤出来。因此,我正在寻找一种方法来测试当前taskName,如果一个适当的任务注册。
下面是展示这个想法的要点https://gist.github.com/MarcelloDiSimone/5631466
在这个要点中,我目前正在检查配置文件的关键字,但这是不可靠的,因为有些任务可能没有配置(如肝脏负载),因此它们会被错误地过滤掉。
你的第一个问题:是的,这是可能的。运行grunt --help
将为您提供所有可用grunt *
任务的列表;不管是NPM任务还是你自己的别名。
至于模块化你的Gruntfile,几天前我研究了一下。使用像matchdeep这样的东西也是完全可能的。
module.exports = function(grunt) {
"use strict";
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
var conf = {
pkg: grunt.file.readJSON('package.json')
};
grunt.file.recurse('./.grunt/config', function(abspath, rootdir, subdir, filename) {
conf[filename.replace(/'.js$/, '')] = require('./' + abspath);
});
grunt.initConfig(conf);
grunt.loadTasks('./.grunt/tasks');
};
所有的配置文件结束在.grunt/config
中,所有的任务结束在.grunt/tasks
中。样本的任务:
// .grunt/tasks/default.js
module.exports = function(grunt) {
grunt.registerTask('default', 'Build a complete, concatenated and minified distribution.', [
'sass',
'cssc',
'cssmin',
'jshint',
'uglify'
]);
}
cssmin的配置示例:
// .grunt/config/cssmin.js
exports.minify = {
src: 'assets/css/master.css',
dest: 'assets/css/master.css'
};
认为这是处理这个问题的好方法,所以我把它贴在这里供将来参考。: -)
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- jQuery-将列表项的一个元素移动到同一项的另一个元素中+对我的列表中的每个项执行此操作
- 为什么我的列表不使用Ion出现
- 我想在我的准备列表项上创建一个按钮
- 列表没有显示在我的本地主机上,但显示在jsfiddle上
- 只允许那些在我的列表框中有实数的项目
- 如何在我的javascript生成列表中的
- 部分中放置更多超链接
- 将我的列表 vom ng-repeat 更改为收集重复 ng-click 后,无法正常工作
- 选择下拉列表需要在选中时显示提供商的详细信息-无法通过我的脚本显示url
- 如何使我的.selected类在hrefs列表中重新加载后保持在正确的a(href)上
- 我如何得到一个有序的列表,随机吐出列表中的一些
- 如何允许我的访问者通过拖放来排列列表项目
- 为什么只有我的切换列表的第一个案例工作正常
- 为什么我的菜单没有't下拉列表
- 我可以'我无法让我的网页浏览JScript中选择列表中的trhorugh URL
- 需要帮助修复我的javascript"对于循环“;播放音频播放列表
- Javascript待办事项列表-我的代码中有什么错误
- 如何将动态创建的元素添加到我的动态创建列表中
- 在我的情况下,如何在角度中对对象列表进行排序
- Soundcloud API列表我的流