我有几个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');
});
任何帮助或指示都会非常感激。
答案 0 :(得分:0)
虽然这不能直接回答你的问题,但我可以为你的原始问题提出一个简单的技巧: 您可以从每个项目中获得一个全局.jshintignore文件和软链接。 这有点像黑客,但它的方式更简单