Next.js 环境变量控制部署

本文介绍了如何使用Next.js进行部署,并通过环境变量控制不同环境的API链接。详细步骤包括安装cross-env,创建config目录和env.js文件,修改package.json,以及在Docker容器中部署时遇到的问题及解决方案,确保CI/CD流程的顺利进行。
摘要由CSDN通过智能技术生成

Next.js 部署与 devops

前言

需要将 Next.js 部署到云平台上,同一份镜像,通过环境变量来控制项目的 api 链接,实现CI/CD 的流程。云平台框架使用的是 rainbond

Next.js 环境变量控制部署

一、 安装 cross-env

cross-env 用来设置环境变量,因为 winlinux 设置环境变量的方法不同,所以引入第三方库来方便设置

npm i --save cross-env
二、创建 config 目录

在根目录下创建 config 目录, 根据不同的 NODE_ENV 创建不同的文件夹, 底下新建不同的 dev ,test 文件。

dev 文件中,有 服务器地址等,ex : PORT=3000 …, test 文件也是

  your-project
  |- pages
  |- public
+ |- config
+  |- development
+    |- dev
+    |- test
+  |- production
+    |- dev
+    |- test

dev 内容如下, ORIGINNEXT_PUBLIC_ORIGIN 就是远程服务器的地址

HOST=xxxx
PORT=8888
ORIGIN=http://xxxx:8888
NEXT_PUBLIC_ORIGIN=http://xxxx:8888
三、 新建 env.js 文件

在根目录下新建 env.js 文件, .env.js 内容如下:

const fs = require('fs')
const path = require('path');

// 从环境变量中获取
const {
    NODE_ENV = 'production', RTE = 'test' } = process.env; 

//封装 resolve
const resolve = (p) => path.join(__dirname, p); 

/**
 * 读取文件
 * 文件格式内容为
 * TEST=ABC
 * @param {路径} p 路径
 * @return [[TEST:ABC]]
 */
const readEnv = (p) => {
   
    fs
    .readFileSync(resolve(p)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值