【问题标题】:How to work with process.env with a build node.js app running in NGINX如何使用 process.env 和在 NGINX 中运行的构建 node.js 应用程序
【发布时间】:2019-04-14 19:52:45
【问题描述】:

我正在设置一个 dockerized Node、MongoDB、Vue、Express 应用程序,在构建我的应用程序后我遇到了一个问题。

对于客户端部分,我需要使用以下 Api.js 从应用程序环境中获取 API-URL

    import axios from 'axios'

    export default() => {
      return axios.create({
        baseURL: process.env.API_URL
      })

我的 docker-compose(仅取决于):

front:
  image: nginx
  environment:
    - NODE_ENV = 'production'
    - API_URL=[hidden]
    - PORT=80

api:
  build: ./etc/server/.
  environment:
    - PORT=80
    - DATABASE_URL=server-database:27017

此代码在 webpack 开发环境中运行良好,但在构建应用程序并将其放置在不同的 NGINX 容器中后就不行了。我还尝试从 NGINX 容器中更改环境变量,但应用程序仍然看不到任何 process.env。

我也试过插件dotenv,也是一个空的process.env

这里有人有想法吗?

谢谢

【问题讨论】:

    标签: node.js nginx webpack environment-variables web-deployment


    【解决方案1】:

    我最终将 webpack.plugins 选项添加到我的基本 webpack 配置中。这有助于查找环境变量。

    plugins: [
      new webpack.DefinePlugin({
        'process.env': {
          API_URL: JSON.stringify(process.env.API_URL),
        },
      }),
    ],
    

    【讨论】:

      猜你喜欢
      • 2021-12-09
      • 2016-11-29
      • 2017-11-28
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-19
      • 2016-01-19
      相关资源
      最近更新 更多