這可能是一個愚蠢的問題,但我很難過。
我有 3 個環境:開發(本地)、暫存(遠程)和生產(遠程)。
我正在撰寫一個相對簡單的 Express 應用程式。
在我的 package.json 檔案中,我為 3 個環境中的每一個指定了啟動腳本。這是完整的檔案:
{
"name": "test-app",
"version": "0.0.1",
"description": "test utility app",
"private": true,
"scripts": {
"start": "cross-env NODE_ENV=development nodemon ./bin/www",
"start:staging": "cross-env NODE_ENV=staging nodemon ./bin/www",
"start:production": "cross-env NODE_ENV=production && nodemon ./bin/www"
},
"devDependencies": {
"cross-env": "^7.0.3"
},
"dependencies": {
"axios": "^0.24.0",
"config": "^3.3.6",
"cookie-parser": "~1.4.4",
"cors": "^2.8.5",
"debug": "~2.6.9",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"http-errors": "~1.6.3",
"jade": "~1.11.0",
"morgan": "~1.9.1",
"nodemon": "^2.0.15"
}
}
現在,我的問題是,如何指定在每個遠程服務器環境中應該使用哪個啟動腳本?
我了解如何啟動開發環境,所以忽略它并專注于 Staging 和 Production。
例如,我希望 start:staging 在 Staging 中執行,而 start:production 在 Production 中執行。
我可能會錯誤地考慮這個問題,所以請告訴我是否應該以不同的方式處理暫存和生產環境。
在我看來,如果沒有我以某種方式將它們分配為一個或另一個環境,Staging 和 Production 環境將不知道它們應該運行哪個環境。
也許這是作為作業流程的一部分完成的?我正在使用 github 操作進行構建/部署,僅供參考。
更新
所以,我做了更多的挖掘。在作業流檔案中,有一個構建步驟:
name: npm install, build, and test
run: |
npm install
npm run build --if-present
npm run test --if-present
我會簡單地添加如下內容:npm run start:staging或npm run start:production適當的?
uj5u.com熱心網友回復:
您基本上想運行腳本但不知道要運行的命令,對嗎?
所以
npm run start:staging
關于 gh-actions
- name: run app on staging
run: npm run start:staging
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/380253.html
下一篇:帶引數的Node.js路由
