我有一个配置文件(config.js),它依赖于两个文件:local.js(用于开发环境)和 deploy.js(用于生产环境)。在run serve
or之后run build
,它会创建一些依赖环境的配置。我像下面这样使用它:
<template>
</template>
<script>
import config from '@/assets/scripts/config.js'
export default {
data() {
return {
apiBasePath: config.apiBasePath
}
}
}
</script>
我的 config.js:
import local from '../../../config/local'
import deploy from '../../../config/deploy'
export default {
apiBasePath:
process.env.NODE_ENV === 'production'
? deploy.corsDomain + ':' + deploy.emergencyPort
: local.corsDomain + ':' + local.emergencyPort,
fileBasePath:
process.env.NODE_ENV === 'production'
? deploy.corsDomain + ':' + deploy.emergencyPort
: local.corsDomain + ':5000',
dataBasePath:
process.env.NODE_ENV === 'production'
? deploy.corsDomain + ':' + deploy.emergencyPort
: 'http://localhost' + ':' + local.emergencyPort,
vocApiPath:
process.env.NODE_ENV === 'production'
? deploy.corsDomain + ':' + deploy.sharePort
: local.corsDomain + ':' + local.sharePort,
visualBasePath:
process.env.NODE_ENV === 'production'
? deploy.corsDomain + ':' + deploy.simulatorPort
: local.corsDomain + ':' + local.simulatorPort,
spotBasePath:
process.env.NODE_ENV === 'production'
? deploy.corsDomain + ':' + deploy.samplePort
: local.corsDomain + ':' + local.samplePort,
shareBasePath:
process.env.NODE_ENV === 'production'
? deploy.corsDomain + ':' + deploy.sharePort
: local.corsDomain + ':' + local.sharePort,
envBasePath:
process.env.NODE_ENV === 'production'
? deploy.corsDomain + ':' + deploy.envPort
: local.corsDomain + ':' + local.envPort,
ep360BasePath:
process.env.NODE_ENV === 'production'
? deploy.corsDomain + ':' + deploy.ep360Port
: local.corsDomain + ':' + local.ep360Port,
defaultDivision: {
province: deploy.defaultProvince ? deploy.defaultProvince : '浙江省',
city: deploy.defaultCity ? deploy.defaultCity : '宁波市',
area: deploy.defaultArea ? deploy.defaultArea : '鄞州区'
}
}
但是在构建之后,这些配置将被插入到块通用脚本中。
我的目标是:
将此配置文件从我的公共块中拆分为一个(假设它的名称是 config.[hash].js),它将成为 HTML 时插入的脚本标记run build
。之后,我可以更改服务器中的一些配置,并且当我设置一些错误的配置时不需要重新构建我的项目
更多细节:我的项目是一个多条目项目,每个条目中几乎都导入了config.js。我尝试了@Arunmozhi所说的动态导入,尽管配置块被拆分,但由于返回,我无法获取data
函数中的配置。我试图用它来解决我的问题,但它没有用。Promise
splitChunks
optimization: {
splitChunks: {
cacheGroups: {
myconfig: {
test: module => {
module
.identifier()
.split('/')
.reduceRight(item => item)
.indexOf('config') !== -1
},
name: 'myconfig',
enforce: true,
chunks: 'all',
reuseExistingChunk: true,
minChunks: 1,
minSize: 0
}
}
}
}