我正在使用模式在我的/config/[xxx].env.js文件中存储配置变量,如下所示:
validate
请注意,其中一些不是特定的环境变量,但我想将这些类型的配置变量放在一个集中的位置。
在我的main.js中,我可以通过module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
API: {
ROOT: "'http://blah.blah.blah'"
},
CONNECTORS: {
SPOTIFY: {
CLIENT_ID: "'blah'",
SCOPES: "'blah'",
REDIRECT_URI: "'blah'"
}
}
})
访问变量:
process.env
但是在较低级别的组件中,"进程"不存在。
我知道它不应该,因为它不是全局定义的,但我无法弄清楚如何从组件中获取该process.env对象。我知道我可以把它变得全球化,但这并不是正确的。"
两个问题:
是否还有其他一些Vue导入/对象我没有进入process.env?
是否有更好的方法来存储这些类型的集中值,这些值可能与环境有关?我已经看过像ruby config gem这样的东西,它可以在默认配置的基础上对环境特定的配置进行分层。
我做了尝试npm配置gem,但由于某种原因它丢失了 其他所需的npms,似乎面向node.js,它 感觉就像我做错了什么不使用什么vue-cli webpack 提供。
答案 0 :(得分:2)
通常,公认的“行业标准”方法是让组件能够从其他组件中查看数据,或者在任何地方形成数据,都可以使用VueX。这与React中的Redux类似。它起初看起来有点复杂,但实际上它很简单,而且VueX可以让您轻松了解任何给定组件如何看到任何给定数据,并同时解决许多其他问题。尝试一下。
当然,另一种方法是在你的应用程序中创建一个实现一种“单例模式”的模块,这样任何代码都可以直接转储数据并获取数据。