对于工程化的 Node 项目,如果设置配置系统参数,可以改变项目的参数耦合性。
本文记录三种参数配置的方法。
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);
命令行尾部添加参数 (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 参数只是把命令行后自定义的参数进行空格分割,并没有把参数进行加工,需要开发者自己按照一定的规则处理参数。
安装依赖
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
读取参数方法
javascriptnpm install dotenv
javascriptlet env = require('dotenv').config(); console.log(env);
或者
javascriptlet dotenv = require('dotenv'); dotenv.config(); console.log(process.env);