我有几个 npm 模块,我想使用通用的 linting 配置。我有 jshint 和闭包 linter 通过 Grunt 处理单个项目。但是为每个项目复制/粘贴 .jshintignore 文件和 .jshintrc 文件会很麻烦,尤其是在需要更改某些内容时。所以理想情况下,我希望有一个单一的 grunt 任务,它封装了通用配置并且可以通过
grunt.loadNpmTasks('grunt-mysuperlint');
哪里grunt-my-common-lint-tasks
真的只是 jshint 和闭包 linter 的特定默认配置。
但我认为没有办法将两个现有的 grunt 插件组合成一个,其中唯一真正的组合是选项和目标的合并。
这可能吗?
我应该做类似的事情:
grunt.registerMultiTask('mysuperlint', function() {
// Manual options merging?
var opts = this.options({
jshint: { src: 'scripts/**/*.js', options: { ... } },
closureLinter: { src: 'scripts/**/*.js', options: { ... } }
});
grunt.config.set('jshint.dev', opts.jshint);
grunt.config.set('closureLinter.dev', opts.closureLinter);
grunt.task.run('jshint:dev');
grunt.task.run('closureLinter:dev');
});
任何帮助或指示将不胜感激。