首页 > 解决方案 > Jenkins Pipeline Artifacts (.NEXT) 始终在生产中

问题描述

我对前端 UI 技术不是很有经验,所以请原谅我这个简单化的问题。我正在建立一个 Jenkins 管道,并且对如何从 Jenkins 构建过程中获取基于环境的工件感到困惑。

我读过这个,这很有意义。

NODE_ENV 的值自动设置为开发(使用 npm start 时)、测试(使用 npm test 时)或生产(使用 npm build 时)。因此,从 create-react-app 的角度来看,只有三个环境。

我已经阅读了其他几篇文章/博客/等,但似乎没有任何效果。我的工件似乎总是生产配置。这是我尝试过的。

包.json

  "scripts": {
    "dev": "nodemon --exec \"next dev\" --watch ./pages/_app.tsx --watch ./next.config.js",
    "build": "next build",
    "build:dev": "SET NODE_ENV=development && npm run build --development --configuration=development",
    "build:uat": "SET NODE_ENV=uat && npm run build",
    "build:pro": "SET NODE_ENV=production && npm run build"
  },

api.config.ts

interface ApiEndpoints {
  [key: string]: string;
  development: string;
  uat: string;
  production: string;
}

const env = process.env.NODE_ENV || 'development';

const apiEndpoints: ApiEndpoints = {
  development: 'https://localhost:44332/graphql',
  uat: 'https://uatserver:44332/graphql',
  production: 'http://prodserver:44332/graphql',
};

const ApiEndpoint = apiEndpoints[env];

export default ApiEndpoint;

Windows 10 与代码我从 bash 提示符运行以下命令:

npm 运行构建:开发

这将执行并创建一个 .NEXT 文件夹。然后我将 .NEXT 文件夹移动到测试服务器并运行

npm 运行开始

并且服务器启动但是在浏览时它总是有生产设置所以它看起来的构建参数不起作用?

因此,我希望拥有特定于管道推送到的环境的构建工件 (.NEXT) 文件夹。

这是可行的吗?如果是这样,我错过了什么?如果不是,我有什么选择?

是的,这与NPM Run Build Always Builds Production 和 Never Development类似,但那篇文章对我来说还不够清楚。

TIA

标签: jenkinsnext.js

解决方案


推荐阅读