如何在组件中访问vuejs webpack配置变量?

时间:2017-11-25 21:06:41

标签: javascript vue.js

我正在使用模式在我的/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对象。我知道我可以把它变得全球化,但这并不是正确的。"

两个问题:

  1. 是否还有其他一些Vue导入/对象我没有进入process.env?

  2. 是否有更好的方法来存储这些类型的集中值,这些值可能与环境有关?我已经看过像ruby config gem这样的东西,它可以在默认配置的基础上对环境特定的配置进行分层。

  3. 做了尝试npm配置gem,但由于某种原因它丢失了     其他所需的npms,似乎面向node.js,它     感觉就像我做错了什么不使用什么vue-cli webpack     提供。

1 个答案:

答案 0 :(得分:2)

通常,公认的“行业标准”方法是让组件能够从其他组件中查看数据,或者在任何地方形成数据,都可以使用VueX。这与React中的Redux类似。它起初看起来有点复杂,但实际上它很简单,而且VueX可以让您轻松了解任何给定组件如何看到任何给定数据,并同时解决许多其他问题。尝试一下。

当然,另一种方法是在你的应用程序中创建一个实现一种“单例模式”的模块,这样任何代码都可以直接转储数据并获取数据。