UNPKG

knip

Version:

Find and fix unused dependencies, exports and files in your TypeScript and JavaScript projects

44 lines (43 loc) 1.61 kB
import { toDependency } from "../../util/input.js"; import { hasDependency } from "../../util/plugin.js"; import { findWebpackDependenciesFromConfig } from "../webpack/index.js"; import compiler from "./compiler.js"; const title = 'Vue'; const enablers = ['vue']; const isEnabled = ({ dependencies }) => hasDependency(dependencies, enablers); const config = ['vue.config.{js,ts,mjs}']; const resolveConfig = async (config, options) => { const { manifest } = options; const inputs = []; if (config.configureWebpack) { const baseConfig = { mode: 'development', entry: {}, resolve: {}, plugins: [], module: { rules: [] }, }; const modifiedConfig = typeof config.configureWebpack === 'function' ? config.configureWebpack(baseConfig) : config.configureWebpack; const inputsFromConfig = await findWebpackDependenciesFromConfig(modifiedConfig ?? baseConfig, options); for (const input of inputsFromConfig) inputs.push(input); } if (manifest.scripts && Object.values(manifest.scripts).some(script => /(?<=^|\s)vue-cli-service(\s|\s.+\s)lint(?=\s|$)/.test(script))) { inputs.push(toDependency('@vue/cli-plugin-eslint')); } return inputs; }; const registerCompilers = ({ registerCompiler, hasDependency }) => { if (hasDependency('vue') || hasDependency('nuxt')) registerCompiler({ extension: '.vue', compiler }); }; const plugin = { title, enablers, isEnabled, config, resolveConfig, registerCompilers, }; export default plugin;