将 Quasar 项目部署到 Netlify 时未定义流程

process is not defined when Deploying Quasar project to Netlify

我有一个 .env 文件,我使用 dotenv 包来管理该文件并将其提供给 quasar.config.js 中的 Quasar:

module.exports = configure(function (ctx) {
  return {
    // ...
    build: {
     // ...
      env: {
        ...require('dotenv').config().parsed
      }
    }
    // ...
  }
}

根据我的经验,我知道在 Netlify 上我遇到了这个问题,因为当构建命令在文件夹 dist/spa.[=19 中运行时,服务器上不存在 .env 文件=]

我尝试通过他们的 UI 添加环境变量,但即使在通过清除缓存重新部署后,错误仍然存​​在。

第一次在Netlify上部署,觉得很简单,不知道怎么解决环境变量问题


我已经使用 Github 操作部署到 Github 页面和其他服务器,我的做法是:

      - name: Create env
        env:
          ENV: ${{ secrets.ENV }}
        run: echo "$ENV" > ./.env

效果很好,但对于我的项目,我想尝试 Netlify,因为它很简单,而且我们不需要 GitHub 操作来启用自动部署。此外,它还有一些我喜欢的额外功能。

那么我在这里错过了什么?

我不知道这样做是否正确,但我通过更新 quasar.config.js 和实际上 re-defining 我所有的环境变量解决了这个问题:

module.exports = configure(function (ctx) {
  require('dotenv').config() 

  return {
    // ...
    build: {
     // ...
      env: {
        API: process.env.API, 
        ANOTHER_KEY: process.env.ANOTHER_KEY
      }
    }
    // ...
  }
}

Credits: accepted answer on Quasar Discussions