committed by
GitHub
2 changed files with 136 additions and 0 deletions
@ -0,0 +1,16 @@ |
|||
# Base api |
|||
# Remeber to change this to your production server address |
|||
# Here I used my mock server for this project |
|||
# VUE_APP_BASE_API = 'https://vue-typescript-admin-mock-server.armour.now.sh/mock-api/v1/' |
|||
|
|||
VUE_APP_BASE_API = '/api' |
|||
#Signalr |
|||
VUE_APP_SIGNALR_SERVER = '/signalr-hubs' |
|||
|
|||
VUE_APP_BASE_IDENTITY_SERVICE = '/api/identity' |
|||
|
|||
VUE_APP_BASE_IDENTITY_SERVER = '/connect' |
|||
|
|||
VUE_APP_TENANT_NAME = '' |
|||
VUE_APP_CLIENT_ID = 'vue-admin-element' |
|||
VUE_APP_CLIENT_SECRET = '1q2w3e*' |
|||
@ -0,0 +1,120 @@ |
|||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|||
const path = require('path') |
|||
|
|||
// If your port is set to 80,
|
|||
// use administrator privileges to execute the command line.
|
|||
// For example, on Mac: sudo npm run / sudo yarn
|
|||
const devServerPort = 9527 // TODO: get this variable from setting.ts
|
|||
const name = 'Vue Typescript Admin' // TODO: get this variable from setting.ts
|
|||
|
|||
module.exports = { |
|||
publicPath: process.env.NODE_ENV === 'production' ? '/vue-typescript-admin-template/' : '/', |
|||
lintOnSave: process.env.NODE_ENV === 'development', |
|||
productionSourceMap: false, |
|||
devServer: { |
|||
port: devServerPort, |
|||
open: true, |
|||
overlay: { |
|||
warnings: false, |
|||
errors: true |
|||
}, |
|||
progress: false, |
|||
proxy: { |
|||
// change xxx-api/login => /mock-api/v1/login
|
|||
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
|||
[process.env.VUE_APP_BASE_IDENTITY_SERVER]: { |
|||
// IdentityServer4 address
|
|||
target: 'http://localhost:44385', |
|||
changeOrigin: true, |
|||
pathRewrite: { |
|||
['^' + process.env.VUE_APP_BASE_IDENTITY_SERVER]: '' |
|||
} |
|||
}, |
|||
[process.env.VUE_APP_SIGNALR_SERVER]: { |
|||
// api gateway address websocket protocol
|
|||
target: 'ws://localhost:30000', |
|||
changeOrigin: true, |
|||
pathRewrite: { |
|||
['^' + process.env.VUE_APP_SIGNALR_SERVER]: '' |
|||
}, |
|||
logLevel: 'debug' |
|||
}, |
|||
[process.env.VUE_APP_BASE_API]: { |
|||
// api gateway address
|
|||
target: 'http://localhost:30000', |
|||
changeOrigin: true, |
|||
pathRewrite: { |
|||
['^' + process.env.VUE_APP_BASE_API]: '' |
|||
}, |
|||
logLevel: 'debug' |
|||
} |
|||
} |
|||
}, |
|||
pwa: { |
|||
name: name, |
|||
workboxPluginMode: 'InjectManifest', |
|||
workboxOptions: { |
|||
swSrc: path.resolve(__dirname, 'src/pwa/service-worker.js') |
|||
} |
|||
}, |
|||
pluginOptions: { |
|||
'style-resources-loader': { |
|||
preProcessor: 'scss', |
|||
patterns: [ |
|||
path.resolve(__dirname, 'src/styles/_variables.scss'), |
|||
path.resolve(__dirname, 'src/styles/_mixins.scss') |
|||
] |
|||
} |
|||
}, |
|||
chainWebpack(config) { |
|||
// provide the app's title in webpack's name field, so that
|
|||
// it can be accessed in index.html to inject the correct title.
|
|||
config.set('name', name) |
|||
|
|||
// https://webpack.js.org/configuration/devtool/#development
|
|||
config |
|||
.when(process.env.NODE_ENV === 'development', |
|||
config => config.devtool('cheap-eval-source-map') |
|||
) |
|||
|
|||
// remove vue-cli-service's progress output
|
|||
config.plugins.delete('progress') |
|||
// replace with another progress output plugin to solve the this bug:
|
|||
// https://github.com/vuejs/vue-cli/issues/4557
|
|||
config.plugin('simple-progress-webpack-plugin') |
|||
.use(require.resolve('simple-progress-webpack-plugin'), [{ |
|||
format: 'compact' |
|||
}]) |
|||
|
|||
config |
|||
.when(process.env.NODE_ENV !== 'development', |
|||
config => { |
|||
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: path.resolve(__dirname, 'src/components'), |
|||
minChunks: 3, // minimum common number
|
|||
priority: 5, |
|||
reuseExistingChunk: true |
|||
} |
|||
} |
|||
}) |
|||
config.optimization.runtimeChunk('single') |
|||
} |
|||
) |
|||
} |
|||
} |
|||
Loading…
Reference in new issue