Nuxt 3 开发/生产环境

问题描述 投票:0回答:1

我正在尝试在 Nuxt 3 中设置开发/生产环境。原因是为了一些测试。如果应用程序 URL 以develop-、staging- 或 test- 开头,我想使用测试端点,例如 https://develop-www.app.com/。我有我的 nuxt 配置设置,当我在本地和产品中运行时,它可以通过基于 NODE env 创建变量来工作。但是,当应用程序在前面提到的任何测试环境中使用 PROD 端点时,因为它不知道它是开发环境。有没有办法根据 NODE 环境进行设置?

nuxt config

const isProdEnv = process.env.NODE_ENV === 'production';
const testServicesEndpoint =
  'https://test-services.location';
const prodServicesEndpoint =
  'https://services.prodlocation';
const servicesEndpoint = isProdEnv
  ? prodServicesEndpoint
  : testServicesEndpoint;


export default defineNuxtConfig({
     runtimeConfig: {
        public: {
          apiBase: servicesEndpoint,
        },
      },
})
vue.js nuxt.js nuxt3
1个回答
0
投票

当 Nuxt 构建

dist
时,它不会知道当前域,因为没有请求发送到 Nuxt。


多个

.env
文件可能会满足您的需求。

例如,在您的 Nuxt 项目根目录中

.env.test
.env.stage
.env.prod
.env

特别是

ENV
中的
package.json

自定义文件

.env

    "scripts": {
        "build": "nuxt build",
        "dev": "nuxt dev",
        
        // for different env variables
        "dev:test": "nuxt dev --dotenv .env.test", // run with .env.test
        "dev:stage": "nuxt dev --dotenv .env.stage", // run with .env.stage
        
        "generate": "nuxt generate",
        "preview": "nuxt preview",
        "postinstall": "nuxt prepare",
        "lint": "eslint .",
        "lint:fix": "eslint . --fix",
        "prod": "node .output/server/index.mjs"
    },
© www.soinside.com 2019 - 2024. All rights reserved.