UNPKG

bsg

Version:

Lint all in one tool for BSG-FE

55 lines (48 loc) 1.35 kB
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; }, };