javascript - 当我使用 env 文件时,当我阅读 vars 时我得到了未定义
问题描述
vue/cli
我使用:创建了一个 Vue 应用程序vue create my-vue
。我想在next
模式下构建这个项目(比如qa
, stage
, next
...),所以我按照Vue docs 中的步骤进行操作。我在.env.next
根项目中使用以下内容创建了文件:
FOO=next
在我的main.js
中,我将其记录到控制台:
import Vue from 'vue'
import App from './App.vue'
console.log({ f: process.env.FOO }); // <----- undefined. why?
console.log({ f: process.env.VUE_APP_FOO }); // <----- undefined. why?
Vue.config.productionTip = false
new Vue({
render: h => h(App),
}).$mount('#app')
之后,我运行构建:
npm run build -- --mode next
当我在控制台中运行 dist 文件夹undefined
时,我得到. 我在捆绑包中搜索了“下一个”,但它不存在。
为什么?如何.env
在构建输出中使用 vars?
解决方案
如您链接的文档中所述:
请注意,只有以
NODE_ENV
、BASE_URL
和开头的变量VUE_APP_
将静态嵌入到客户端捆绑包中webpack.DefinePlugin
。这是为了避免意外暴露机器上可能具有相同名称的私钥。
要FOO
在构建输出中可用,请将其重命名为VUE_APP_FOO
在您的.env
文件中,并相应地更新引用:
console.log({ f: process.env.VUE_APP_FOO })
推荐阅读
- python - python中svg的非线性变换
- dictionary - Leafletjs 地图交互式 Choropleth 地图
- node.js - Swagger 发送此错误:TypeError: NetworkError when trying to fetch resource in Fastify NodeJS
- python - RNN:了解连接层
- java - java LRU缓存:带有时间戳的LinkedHashMap?
- java - 有没有办法将 Java8 Optional 返回值与在 null 上打印消息相结合?
- html - JPA、nativeQuery 的值如上图所示
- dropdown - 下拉列的 JPA 实体(如何填充下拉列表)
- sql-server - 使用 VB.Net 和 Dataset 或 Datatable 将数据从 Excel 导入 SQL Server
- python - 在 all-auth 注册中创建多个用户角色