import { createDefaultPage } from './pages' import { createVuePluginConfig } from './vue-plugins' import { createWebpackConfigure } from './webpack' import { createWebpackDevServer } from './dev-server' import { injectPackageOptionsForProcess } from './pretreatment' import { parseEnv } from './utils/parse' import { ProjectOptions } from './intf/vue-project-options' const { VUE_APP_PUBLIC_PATH, VUE_SUBDIRECTORY_PATH, VUE_DEV_LINT_ON_SAVE, NODE_ENV } = parseEnv() /** Inject package.json options to process */ injectPackageOptionsForProcess() // # 生成 vue 配置 const VUE_CONFIG: ProjectOptions = { // @ 新版部署规则下, 资源目录部分, 任一环境保持统一. publicPath: VUE_APP_PUBLIC_PATH ?? '/', assetsDir: VUE_SUBDIRECTORY_PATH ?? '', pages: createDefaultPage(), // @ vue 插件 配置 pluginOptions: createVuePluginConfig(), // @ dev server 代理能力通过 .env 环境配置文件提供 devServer: createWebpackDevServer(), // @ webpack 版本, 根据不同编译条件, 选择不同配置 chainWebpack: createWebpackConfigure, configureWebpack: {}, // 资源完整性检查, 开启后会触发preload关闭 integrity: false, // ~ debug 相关 lintOnSave: NODE_ENV !== 'production' && VUE_DEV_LINT_ON_SAVE === 1, parallel: true, transpileDependencies: true } export default VUE_CONFIG