我正在尝试在 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,
},
},
})
当 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"
},