如何在略有不同的环境中使用cascading configurations(一个用于node.js,另一个用于浏览器)?两个环境之间唯一真正的区别是env
变量。
理想情况下,我想要这样的事情:
my-project
├── .eslintrc.json
├── .eslintrc.node.json
├── .eslintrc.browser.json
└─┬ src
└── .eslintrc.json
我指示ESLint使用合并:
.eslintrc.json
.eslintrc.node.json
src/.eslintrc.json
有什么想法吗?
我尝试声明单独的.eslintrc.node.json
和.eslintrc.browser.json
文件。这有效,但级联配置不起作用(忽略了子目录中具有类似文件名的配置文件)。这种方法也遭受了两个文件之间的大量重复。
我尝试声明一个.eslintrc.json
文件并将env
configuratoin传递给eslint构造函数。拾取了磁盘上的配置,但忽略了传递给构造函数的env
。
注意:我正在通过gulp-eslint与eslint进行交互,但我认为如果我直接与eslint交互,我会看到相同的行为。
答案 0 :(得分:1)
我明白了。 CLIEngine需要" envs"构造函数选项,所以我做了以下内容:
gulp.task("lint-for-node", function()
{
return gulp.src(
[
"src/**.js"
]).
pipe(eslint(
{
"envs": ["es6", "node", "amd"]
}
)).
pipe(eslint.format()).
pipe(eslint.failOnError());
});
gulp.task("lint-for-browser", function()
{
return gulp.src(
[
"src/**.js"
]).
pipe(eslint(
{
"envs": ["es6", "browser"]
}
)).
pipe(eslint.format()).
pipe(eslint.failOnError());
});
级联配置正确合并.eslintrc.json
和src/.eslintrc.json
,ESLint从上面的构造函数中选择正确的环境。