文件的作用说明:(所有文件都在项目的根目录下)
【.env】设置公共的配置信息。
【.env.development 】设置开发环境的配置信息。
【.env.production】设置正式环境的配置信息。
【package.json】放置安装的包,与配置npm命令(启动node服务)。
【server.js】是node启动服务的入口文件。
【.env 文件内配置信息】
# 公共配置
APP_PLATFORM_NAME=后端的名称
# 开启单点登录
APP_SSO=false
【.env.development 文件内配置信息】
# 开发环境配置
NODE_ENV=development
API_BASE_URL=http://127.0.0.1:1111/
【.env.production文件内配置信息】
# 正式环境配置
NODE_ENV=production
API_BASE_URL=https://www.888.com/
========================================================================================
1、加载配置文件的方法一: (注意:Node.js 20.6 版本及以上才原生支持 .env 文件)
在【package.json】文件内配置:(注:同时加载两个配置,属性有冲突的,后面覆盖前面的)
{
"scripts": {
"server:dev":"node --env-file=.env --env-file=.env.development server.js",
"server:prod":"node --env-file=.env --env-file=.env.production server.js"
},
"dependencies": {
"axios": "^0.19.2",
"express": "^4.17.1",
"mysql": "^2.18.1"
}
}
在【server.js】文件内
const http = require('http');
const https = require('https');
const fs = require('fs');
console.log('process.env.NODE_ENV:',process.env.NODE_ENV); //输出development或production
console.log('process.env.API_BASE_URL:',process.env.API_BASE_URL);//输出http://127.0.0.1:1111/或https://www.888.com/
//其它代码
========================================================================================
2、加载配置文件的方法二: (需要安装dotenv库【npm install dotenv -S-D】)
在【package.json】文件内配置:(注:命令后面的--mode=***作为参数传递。set可直接给process.env对象赋值。)
{
"scripts": {
"server:dev": "node ./server.js --mode=development",
"server:prod": "node ./server.js --mode=production",
"server:dev_set": "set NODE_ENV=development && nodemon ./server.js",
"server:prod_set": "set NODE_ENV=production && nodemon ./server.js"
},
"dependencies": {
"dotenv": "^17.2.0",
"axios": "^0.19.2",
"express": "^4.17.1",
"mysql": "^2.18.1"
}
}
在【server.js】文件内配置(注:同时加载两个配置,属性有冲突的,前面覆盖后面的)
const http = require('http');
const https = require('https');
const fs = require('fs');
let mode = (process.argv.find(item=>item.includes('--mode=')) || '').replace('--mode=', '');//方法一:获取命令参数
//let mode = process.env.NODE_ENV.trim();//方法二:获取【server:dev_set】命令直接赋值的参数
const dotenv = require('dotenv');//引入
dotenv.config({ path: `.env.${mode || 'development'}` });//前面的配置优先【.env.development】【.env.production】
dotenv.config({ path: '.env' })//引入.env配置文件(公共的配置文件)
// console.log('process.env:',process.env);
console.log('process.env.NODE_ENV:',process.env.NODE_ENV); //输出development或production
console.log('process.env.API_BASE_URL:',process.env.API_BASE_URL);//输出http://127.0.0.1:1111/或https://www.888.com/
//其它代码
========================================================================================
其它说明:
获取命令参数(数组):【process.argv】
环境类型:【process.env.NODE_ENV】
链接:【process.env.API_BASE_URL】