Files
learning-system-portal/vue.config.js
陈昱达 3720b5667d feat(portal): 实现消息组件支持 Mermaid 图表渲染
- 添加 markdown-it-mermaid 插件支持 Mermaid 语法
- 集成 mermaid 库并初始化配置
- 实现打字机效果与 Mermaid 渲染结合
-优化案例引用展示逻辑与样式- 添加推荐问题展示功能
- 改进消息组件的响应式与样式细节
- 修复组件销毁时定时器未清除的问题
- 更新依赖包引入 Mermaid 相关库
2025-10-14 15:32:20 +08:00

236 lines
7.1 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
'use strict'
const path = require('path')
const defaultSettings = require('./src/settings.js')
const webpack = require('webpack')
function resolve(dir) {
return path.join(__dirname, dir)
}
const name = defaultSettings.title || '京东方大学堂' // 标题
const port = process.env.port || process.env.npm_config_port || 80 // 端口
// vue.config.js 配置说明
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
// 这里只列一部分,具体配置参考文档
const timeStamp = new Date().getTime()
module.exports = {
filenameHashing: false,
// 部署生产环境和开发环境下的URL。
// 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.sss.com/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.aaa.com/admin/,则设置 baseUrl 为 /admin/。
publicPath: process.env.VUE_APP_PUBLIC_PATH + "/",
// 在npm run build 或 yarn build 时 生成文件的目录名称要和baseUrl的生产环境路径一致默认dist
outputDir: 'dist',
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
assetsDir: 'static',
// 是否开启eslint保存检测有效值ture | false | 'error'
lintOnSave: process.env.NODE_ENV === 'development',
// 如果你不需要生产环境的 source map可以将其设置为 false 以加速生产环境构建。
productionSourceMap: false,
css: {
extract: {
ignoreOrder: true,
filename: `css/[name].css?v=${timeStamp}`,
chunkFilename: `css/chunk.[id].css?v=${timeStamp}`
}
},
configureWebpack: {
name: name,
output: {
filename: `js/[name].js?v=${timeStamp}`,
chunkFilename: `js/chunk.[id].js?v=${timeStamp}`
},
resolve: {
alias: {
'@': resolve('src')
}
},
plugins: [
new webpack.ProvidePlugin({
'window.Quill': 'quill/dist/quill.js',
Quill: 'quill/dist/quill.js'
})
]
},
chainWebpack(config) {
// set svg-sprite-loader
config.plugins.delete('preload')
config.plugins.delete('prefetch')
// 添加对 mathxyjax3 的处理规则
config.module
.rule('mathxyjax3')
.test(/node_modules[\/\\]mathxyjax3[\/\\].*\.js$/)
.use('null-loader')
.loader('null-loader')
.end()
config.module
.rule('svg')
.exclude.add(resolve('src/icons'))
.end()
config.module
.rule('icons')
.test(/\.svg$/)
.include.add(resolve('src/icons'))
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]'
})
.end()
config
.when(process.env.NODE_ENV !== 'development',
config => {
config
.plugin('ScriptExtHtmlWebpackPlugin')
.after('html')
.use('script-ext-html-webpack-plugin', [{
// `runtime` must same as runtimeChunk name. default is `runtime`
inline: /runtime\..*\.js$/
}])
.end()
config
.optimization.splitChunks({
chunks: 'all',
cacheGroups: {
libs: {
name: 'chunk-libs',
test: /[\\/]node_modules[\\/]/,
priority: 10,
chunks: 'initial' // only package third parties that are initially dependent
},
elementUI: {
name: 'chunk-elementUI', // split elementUI into a single package
priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
},
commons: {
name: 'chunk-commons',
test: resolve('src/components'), // can customize your rules
minChunks: 3, // minimum common number
priority: 5,
reuseExistingChunk: true
}
}
})
config.optimization.runtimeChunk('single'), {
from: path.resolve(__dirname, './public/robots.txt'), //防爬虫文件
to: './', //到根目录下
}
}
)
},
devServer: {
// 端口
port: port,
// https
https: false,
// 使用代理
// 172.16.6.175
// 114.115.162.187 测试环境
// 192.168.0.107 晋宇
proxy: {
// "/professional": {
// // target: 'https://u-pre.boe.com',
// // target: 'http://192.168.86.195:32002',
// target: 'http://192.168.68.211:32002',
// changeOrigin: true,
// },
"/growth": {
target: 'https://u-pre.boe.com',
// target: 'http://192.168.86.195:32002',
changeOrigin: true,
},
'/manageApi': {
// 目标代理服务器地址
target: 'https://u-pre.boe.com',
changeOrigin: true,
secure: false,
pathRewrite: {
'^/manageApi': '/manageApi'
}
},
'/systemapi': {
// 目标代理服务器地址
// target: 'http://127.0.0.1:9090',
target: 'https://u-pre.boe.com',
changeOrigin: true,
logLevel: 'debug',
secure: false,
pathRewrite: {
// '^/systemapi': ''
}
},
'/uboeApi': {
// 目标代理服务器地址
target: 'https://u-pre.boe.com',
changeOrigin: true,
secure: false,
pathRewrite: {
'^/uboeApi': '/api'
}
},
'/userbasic': {
// 目标代理服务器地址
target: 'https://u-pre.boe.com',
changeOrigin: true,
secure: false,
pathRewrite: {
'^/userbasic': '/userbasic'
}
},
'/statApi': {
// 目标代理服务器地址
// target: 'http://127.0.0.1:9080',
target: 'https://u-pre.boe.com',
changeOrigin: true,
logLevel: 'debug',
secure: false,
pathRewrite: {
// '^/statApi': ''
}
},
'/socialApi': {
// 目标代理服务器地址
// target: 'http://127.0.0.1:9081',
target: 'https://u-pre.boe.com',
changeOrigin: true,
logLevel: 'debug',
secure: false,
pathRewrite: {
// '^/socialApi': ''
}
},
'/report': {
// 目标代理服务器地址
target: 'https://u-pre.boe.com',
changeOrigin: true,
secure: false,
pathRewrite: {
'^/report': '/report'
}
},
'/infrasApi': {
// 目标代理服务器地址
target: 'https://u-pre.boe.com',
changeOrigin: true,
secure: false,
},
'/activityApi': {
// 目标代理服务器地址
target: 'https://u-pre.boe.com',
changeOrigin: true,
secure: false,
},
},
},
css: {
extract: {
ignoreOrder: true
}
}
}