Node 项目参数配置化,命令行参数
前言
对于工程化的 Node 项目,如果设置配置系统参数,可以改变项目的参数耦合性。
本文记录三种参数配置的方法。
一、env 变量
process.env
参数变量配置
-
添加 npm 依赖
npm install cross-env -D
-
命令行参数设置
javascript"scripts": { "start":"cross-env NODE_ENV=dev API=localost node app.js" }
-
读取
process.env
参数javascriptconsole.log('process.env.NODE_ENV:', process.env.NODE_ENV);
二、argv 变量
-
命令行尾部添加参数 (npm 脚本命令)
javascript"scripts": { "argv": "node app.js --app name=levenx" }
-
或者直接控制台输入执行
javascriptnode app.js --app name=levenx
-
自定义参数读取 `process.argv
console.log(process.argv.splice(2))
从上图可以可以看出,process.argv 参数只是把命令行后自定义的参数进行空格分割,并没有把参数进行加工,需要开发者自己按照一定的规则处理参数。
推荐一个 npm 工具库:minimist
-
安装依赖
javascriptnpm install minimist
-
使用方法
javascriptnode app.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz
-
读取参数
javascriptconst argv = require('minimist')(process.argv.slice(2)); console.log(argv);
三、.env 文件 + dotenv
需要配置的参数变量单独放在一个配置文件.env
读取参数方法
javascriptnpm install dotenv
javascriptlet env = require('dotenv').config(); console.log(env);
或者
javascriptlet dotenv = require('dotenv'); dotenv.config(); console.log(process.env);