如果你使用 PM2 的 ecosystem 文件來管理應用程序,可以通過以下步驟確保重新加載 `.env` 文件中的環境變量:
## 更新 `.env` 文件
確保你已經更新了 `.env` 文件中的環境變量。
## 在 ecosystem 文件中配置 `env` 屬性
確保在 ecosystem 文件中配置了 `env` 屬性來加載環境變量。
例如,`ecosystem.config.js` 文件可能如下所示:
```javascript
module.exports = {
apps: [
{
name: 'my-app',
script: './app.js',
env: {
NODE_ENV: 'production',
MY_VARIABLE: process.env.MY_VARIABLE, // 從 .env 文件加載
},
},
],
};
```
## 使用 `pm2 restart` 並帶上 `--update-env` 參數
這樣可以確保 PM2 在重啟應用時重新加載環境變量。
例如:
```bash
pm2 restart ecosystem.config.js --update-env
```
## 確保在應用啟動時加載 `.env` 文件
如果你使用 `dotenv` 或其他庫來加載 `.env` 文件,確保在應用啟動時正確加載這些變量。
例如,在 `app.js` 中:
```javascript
require('dotenv').config();
// 你的應用代碼
console.log(process.env.MY_VARIABLE);
```
## 啟動或重啟應用
使用 PM2 啟動或重啟應用,並確保帶上 `--update-env` 參數。
例如:
```bash
pm2 start ecosystem.config.js
pm2 restart my-app --update-env
```
這樣可以確保 PM2 在重啟應用時重新加載 `.env` 文件中的環境變量。
## 也可以用 reload
是的,你可以使用 `pm2 reload` 命令來重新加載應用程序,並確保它重新加載環境變量。與 `restart` 命令類似,你需要使用 `--update-env` 參數來確保環境變量被重新加載。
以下是使用 `ecosystem.config.js` 文件的步驟:
### 更新 `.env` 文件
確保你已經更新了 `.env` 文件中的環境變量。
### 在 ecosystem 文件中配置 `env` 屬性
確保在 ecosystem 文件中配置了 `env` 屬性來加載環境變量。
例如,`ecosystem.config.js` 文件可能如下所示:
```javascript
module.exports = {
apps: [
{
name: 'my-app',
script: './app.js',
env: {
NODE_ENV: 'production',
MY_VARIABLE: process.env.MY_VARIABLE, // 從 .env 文件加載
},
},
],
};
```
### 確保在應用啟動時加載 `.env` 文件
如果你使用 `dotenv` 或其他庫來加載 `.env` 文件,確保在應用啟動時正確加載這些變量。
例如,在 `app.js` 中:
```javascript
require('dotenv').config();
// 你的應用代碼
console.log(process.env.MY_VARIABLE);
```
### 使用 `pm2 reload` 並帶上 `--update-env` 參數
這樣可以確保 PM2 在重新加載應用時重新加載環境變量。
例如:
```bash
pm2 reload ecosystem.config.js --update-env
```
這樣可以確保 PM2 在重新加載應用時重新加載 `.env` 文件中的環境變量。