129 lines
3.6 KiB
JavaScript
129 lines
3.6 KiB
JavaScript
const AutoImport = require('unplugin-auto-import/webpack');
|
|
const Components = require('unplugin-vue-components/webpack');
|
|
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers');
|
|
const MomentLocalesPlugin = require('moment-locales-webpack-plugin');
|
|
const LodashModuleReplacementPlugin = require("lodash-webpack-plugin");
|
|
const { proxyUrl, proxyUrlDelivery } = require('./src/config');
|
|
const { baseOss } = require('./src/config');
|
|
|
|
const path = require('path');
|
|
|
|
const mode = process.env.NODE_ENV;
|
|
// console.log(mode);
|
|
const isDev = mode === 'development';
|
|
|
|
function resolve(dir) {
|
|
return path.join(__dirname, dir);
|
|
}
|
|
|
|
module.exports = {
|
|
// history模式下刷新页面会报错
|
|
publicPath: './',
|
|
productionSourceMap: false,
|
|
devServer: {
|
|
disableHostCheck: true,
|
|
port: 8090,
|
|
proxy: {
|
|
'/api': {
|
|
target: proxyUrl,
|
|
changeOrigin: true,
|
|
logLevel: 'debug',
|
|
pathRewrite: {
|
|
'^/api': proxyUrl, // 路径重写
|
|
},
|
|
cookieDomainRewrite: 'localhost',
|
|
},
|
|
// '/daixin': {
|
|
// target: proxyUrlMessageCenter,
|
|
// changeOrigin: false,
|
|
// pathRewrite: {
|
|
// '^/daixin': proxyUrlMessageCenter, // 路径重写
|
|
// },
|
|
// },
|
|
'/request-java': {
|
|
target: `${proxyUrlDelivery}/api`,
|
|
changeOrigin: true,
|
|
pathRewrite: {
|
|
'^/request-java': '', // 路径重写
|
|
},
|
|
},
|
|
// '/rng': {
|
|
// target: 'http://talk.wemark.tech/api/v1',
|
|
// changeOrigin: true,
|
|
// pathRewrite: {
|
|
// '^/rng': ''
|
|
// }
|
|
// },
|
|
},
|
|
},
|
|
css: {
|
|
requireModuleExtension: true,
|
|
loaderOptions: {
|
|
less: {
|
|
lessOptions: {
|
|
modifyVars: {
|
|
'primary-color': '#70b936', // 修改全局主题色
|
|
},
|
|
javascriptEnabled: true,
|
|
}
|
|
},
|
|
scss: {
|
|
prependData:
|
|
`@import "~@/style/whole/whole.scss";$baseOss:"${baseOss}";`
|
|
}
|
|
},
|
|
},
|
|
chainWebpack: (config) => {
|
|
config.resolve.alias
|
|
.set('@', resolve('src'))
|
|
.set('@views', resolve('src/views'))
|
|
.set('@scss', resolve('src/scss'))
|
|
.set('@helper', resolve('src/helper'))
|
|
.set('@components', resolve('src/components'))
|
|
.set('@plugins', resolve('src/plugins'))
|
|
.set('@router', resolve('src/router'))
|
|
.set('@store', resolve('src/store'))
|
|
.set('@api', resolve('src/api'))
|
|
.set('@utils', resolve('src/utils'))
|
|
.end();
|
|
config.plugin("loadshReplace").use(new LodashModuleReplacementPlugin());
|
|
config.plugin('html').tap(args => {
|
|
args[0].title = "智能洞察工具";
|
|
return args;
|
|
});
|
|
// config.module
|
|
// .rule('vue')
|
|
// .test(/\.vue$/)
|
|
// .use('vue-inline-px-to-rem')
|
|
// .loader('vue-inline-px-to-rem')
|
|
// .options({
|
|
// rootValue: 192.0,
|
|
// propList: ['font', 'font-size'],
|
|
// })
|
|
// .end()
|
|
|
|
config.module.rule('.mjs').test(/.mjs$/).include.add(/node_modules/).end().type('javascript/auto');
|
|
},
|
|
configureWebpack: {
|
|
output: {
|
|
filename: isDev ? `[name].js` : `[name].[contenthash:8].js`,
|
|
chunkFilename: isDev ? `[name].js` : `[name].[contenthash:8].js`,
|
|
},
|
|
plugins: [
|
|
require('unplugin-element-plus/webpack')({
|
|
// options
|
|
}),
|
|
AutoImport({
|
|
resolvers: [ElementPlusResolver({
|
|
importStyle: 'css',
|
|
exclude: new RegExp(/^(?!.*loading-directive).*$/)
|
|
})],
|
|
}),
|
|
Components({
|
|
resolvers: [ElementPlusResolver()],
|
|
}),
|
|
new MomentLocalesPlugin(),
|
|
],
|
|
},
|
|
};
|