乐闻世界logo
搜索文章和话题
Node 项目参数配置化,命令行参数

Node 项目参数配置化,命令行参数

乐闻的头像
乐闻

2022年06月18日 12:15· 阅读 713

前言

对于工程化的 Node 项目,如果设置配置系统参数,可以改变项目的参数耦合性。

本文记录三种参数配置的方法。

一、env 变量

process.env 参数变量配置

  1. 添加 npm 依赖

    npm install cross-env -D

  2. 命令行参数设置

    javascript
    "scripts": { "start":"cross-env NODE_ENV=dev API=localost node app.js" }
  3. 读取 process.env 参数

    javascript
    console.log('process.env.NODE_ENV:', process.env.NODE_ENV);

    image-20210126163518950


二、argv 变量

  1. 命令行尾部添加参数 (npm 脚本命令)

    javascript
    "scripts": { "argv": "node app.js --app name=levenx" }
  2. 或者直接控制台输入执行

    javascript
    node app.js --app name=levenx
  3. 自定义参数读取 `process.argv

    console.log(process.argv.splice(2))

    image-20210126164009598

    从上图可以可以看出,process.argv 参数只是把命令行后自定义的参数进行空格分割,并没有把参数进行加工,需要开发者自己按照一定的规则处理参数。

推荐一个 npm 工具库:minimist

  1. 安装依赖

    javascript
    npm install minimist
  2. 使用方法

    javascript
    node app.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz
  3. 读取参数

    javascript
    const argv = require('minimist')(process.argv.slice(2)); console.log(argv);

    image-20210126165142580


三、.env 文件 + dotenv

需要配置的参数变量单独放在一个配置文件.env

image-20210126171114574

读取参数方法

javascript
npm install dotenv
javascript
let env = require('dotenv').config(); console.log(env);

image-20210126171547161

或者

javascript
let dotenv = require('dotenv'); dotenv.config(); console.log(process.env);

image-20210126172020500

标签: