irc_dicom_route/vue.config.js

132 lines
3.5 KiB
JavaScript

'use strict'
const path = require('path')
// eslint-disable-next-line no-undef
const defaultSettings = require('./src/settings.js')
const CopyPlugin = require('copy-webpack-plugin')
const moment = require('moment')
var distDate = moment(new Date()).format('YYYY-MM-DD')
console.log(distDate)
function resolve(dir) {
return path.join(__dirname, dir)
}
const name = defaultSettings.title || 'IRCIS' // page title
// eslint-disable-next-line no-undef
module.exports = {
transpileDependencies: ['@cornerstonejs'],
// publicPath: process.env.NODE_ENV === 'development' || process.env.VUE_APP_OSS_CONFIG_BUCKET === 'zyypacs-usa' ? process.env.VUE_APP_BASE_PATH : `${process.env.VUE_FILE_PATH}${process.env.VUE_APP_OSS_PATH}${distDate}/`,
publicPath: '/',
outputDir: 'dist',
assetsDir: 'static',
productionSourceMap: false,
lintOnSave: false,
devServer: {
port: '8080',
historyApiFallback: true, // 关键:启用 History 模式支持
hot: true, // 确保热更新开启(默认已启用)
headers: {
'Cross-Origin-Opener-Policy': 'same-origin',
'Cross-Origin-Embedder-Policy': 'require-corp'
},
// open: true,
overlay: {
warnings: false,
errors: true
},
proxy: {
'/UploadHub': {
target: 'http://123.56.94.154:7000', // 国内测试环境2
changeOrigin: true,
secure: false,
pathRewrite: {
'^/api': ''
}
},
'/IRaCISData': {
target: 'http://123.56.94.154:8060/', // 国内测试环境2
changeOrigin: true,
pathRewrite: {
}
},
'/api': {
// target: 'http://123.56.94.154:7000', // 国内测试环境2
target: 'http://106.14.89.110:30000', // 国内测试环境2
changeOrigin: true,
secure: false,
pathRewrite: {
'^/api': ''
}
}
}
},
configureWebpack: {
name: name,
output: {
filename: `static/js/[name].[hash].js`,
chunkFilename: `static/js/[name].[hash].js`
},
plugins: [
new CopyPlugin([
{
from: path.resolve(__dirname, './static'),
to: path.resolve(__dirname, './dist/static'),
ignore: ['.*']
}
])
],
performance: {
hints: 'warning',
// 入口起点的最大体积
maxEntrypointSize: 5000000000,
// 生成文件的最大体积
maxAssetSize: 3000000000,
// 只给出js的性能提示
assetFilter: function (assetFileName) {
return assetFileName.endsWith('.js')
}
},
resolve: {
alias: {
'@': resolve('src'),
'modules': resolve('node_modules'),
'utils': resolve('src/utils')
}
}
},
chainWebpack(config) {
config.plugins.delete('preload') // TODO: need test
config.plugins.delete('prefetch') // TODO: need test
config.module
.rule('svg')
.exclude.add(resolve('src/icons'))
.add(resolve('src/assets/icons'))
.end()
config.module
.rule('icons')
.test(/\.svg$/)
.include.add(resolve('src/icons'))
.add(resolve('src/assets/icons'))
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]'
})
.end()
// set preserveWhitespace
config.module
.rule('vue')
.use('vue-loader')
.loader('vue-loader')
.tap(options => {
options.compilerOptions.preserveWhitespace = true
return options
})
.end()
}
}