const Setting = require('./src/setting.env'); // 拼接路径 const resolve = dir => require('path').join(__dirname, dir); // 增加环境变量 process.env.VUE_APP_VERSION = require('./package.json').version; process.env.VUE_APP_BUILD_TIME = require('dayjs')().format('YYYY-M-D HH:mm:ss'); module.exports = { // 一级目录设置 // publicPath:'/', //二级目录设置 publicPath:Setting.publicPath, outputDir: Setting.outputDir, /**publicPath:Setting.publicPath, lintOnSave: Setting.lintOnSave, outputDir: Setting.outputDir, assetsDir: Setting.assetsDir,**/ runtimeCompiler: true, productionSourceMap: false, // 二级目录设置 // devServer: { // publicPath:'/', // port:8080 // }, css: { loaderOptions: { less: { } } }, transpileDependencies: ['view-design'], // 默认设置: https://github.com/vuejs/vue-cli/tree/dev/packages/@vue/cli-service/lib/config/base.js chainWebpack: config => { /** * 删除懒加载模块的 prefetch preload,降低带宽压力 * https://cli.vuejs.org/zh/guide/html-and-static-assets.html#prefetch * https://cli.vuejs.org/zh/guide/html-and-static-assets.html#preload * 而且预渲染时生成的 prefetch 标签是 modern 版本的,低版本浏览器是不需要的 */ config.plugins .delete('prefetch') .delete('preload'); // 解决 cli3 热更新失效 https://github.com/vuejs/vue-cli/issues/1559 config.resolve .symlinks(true); config // 开发环境 .when(process.env.NODE_ENV === 'development', // sourcemap不包含列信息 config => config.devtool('cheap-source-map') ) // 非开发环境 .when(process.env.NODE_ENV !== 'development', config => { }); // 不编译 iView Pro config.module .rule('js') .test(/\.jsx?$/) .exclude .add(resolve('src/libs/iview-pro')) .end(); // 使用 iView Loader config.module .rule('vue') .test(/\.vue$/) .use('iview-loader') .loader('iview-loader') .tap(() => { return Setting.iviewLoaderOptions }) .end(); // markdown config.module .rule('md') .test(/\.md$/) .use('text-loader') .loader('text-loader') .end(); // 重新设置 alias config.resolve.alias .set('@api', resolve('src/api')); // node config.node .set('__dirname', true) .set('__filename', true); // 判断是否需要加入模拟数据 const entry = config.entry('app'); if (Setting.isMock) { entry .add('@/mock') .end() } } };