bsg
Version:
Lint all in one tool for BSG-FE
55 lines (48 loc) • 1.35 kB
JavaScript
const path = require("path");
const packageJSON = require(path.resolve("package.json"));
const { dependencies, devDependencies } = packageJSON;
const semverUtils = require("semver-utils");
const vueVersionRange = semverUtils.parseRange(
dependencies.vue || devDependencies.vue,
);
const isTsProject = !!(dependencies.typescript || devDependencies.typescript);
const isNuxtProject = !!(dependencies.nuxt || devDependencies.nuxt);
const isNuxtTsProject = !!(
dependencies["@nuxt/types"] || devDependencies["@nuxt/types"]
);
const { existsSync } = require("fs");
const config = require("./config");
let env = "default";
let vueVersion = 0;
if (vueVersionRange.length) {
vueVersion = +vueVersionRange[0].major;
}
if (vueVersion === 3) {
env = "vue3";
} else if (vueVersion === 2) {
if (isTsProject) {
env = "vue2-ts";
} else {
env = "vue2";
}
} else {
if (isNuxtProject) {
if (isNuxtTsProject) {
env = "nuxt-ts";
} else {
env = "nuxt";
}
}
}
module.exports = {
getConfig: function () {
const envConfig = config[env];
const autoImportPath = path.resolve(".eslintrc-auto-import.json");
if (
existsSync(autoImportPath) &&
!envConfig.eslintConfig.extends.includes(autoImportPath)
)
envConfig.eslintConfig.extends.push(autoImportPath);
return envConfig;
},
};