Vue.js 为生产vue构建提供环境变量
我希望实现以下目标:Vue.js 为生产vue构建提供环境变量,vue.js,Vue.js,我希望实现以下目标: Vue应用程序是使用npm build构建的 然后将/dist结果复制到某个环境中 在这个环境中,我有一些名称=值设置的静态设置文件 Vue应用程序应从其运行的本地文件夹中读取此设置,或默认为某些设置 执行此操作的最佳方法是什么。如果您使用Vue CLI 3创建项目,您可以这样做 确保设置文件名为.env,并将其放置在项目根目录中 在.env文件中,变量的前缀应为“VUE_APP_” VUE\u APP\u SOMEKEY=SOME\u KEY\u VALUE 使用proc
npm build
构建的执行此操作的最佳方法是什么。如果您使用
Vue CLI 3
创建项目,您可以这样做
.env
,并将其放置在项目根目录中.env
文件中,变量的前缀应为“VUE_APP_”
VUE\u APP\u SOMEKEY=SOME\u KEY\u VALUE
process.env.*
访问它们
console.log(process.env.VUE\u APP\u SOMEKEY)//SOME\u KEY\u值
globalConfig.js
)才能实现此解决方案,例如:
window.myAppSettings = {
MY_VARIABLE: 'some_value'
}
它将以某种方式复制到特定环境中的dist文件夹中。
您还应准备应用程序以引用该文件:
vue.config.js
module.exports = {
chainWebpack: config => {
config.externals({
'my-app-settings': 'myAppSettings'
})
}
}
因此,您可以在代码中获取设置:
import mySettingsObject from 'my-app-settings'
//...
let myValue = mySettingsObject.MY_VARIABLE
index.html
文件中添加对globalConfig.js
的引用:
<script src="<%= BASE_URL %>globalConfig.js"></script>
然后在项目根目录.env.local
和.env.production
中创建两个文件:
// .env.local
VUE_APP_GLOBAL_SETTINGS_VERSION=local
及
因此,当您运行npm run service
时,它将加载您的本地配置,而您的应用程序将加载localSettings.js
。
当它使用
npm run build
构建时,它将加载globalSettings.js
,因为构建默认使用生产模式。使用模块如何在生产中运行应用程序?节点,nginx?什么是“Vue应用程序应读取…”?Vue应用程序是一个前端应用程序,您只能在生成过程中提供环境变量。@Max Sinev:应用程序已最小化为一组静态文件。。。我想添加一个我自己的文件作为设置的来源我知道这一点。。。不是我想的那样。
// .env.local
VUE_APP_GLOBAL_SETTINGS_VERSION=local
// .env.production
VUE_APP_GLOBAL_SETTINGS_VERSION=global