zoukankan      html  css  js  c++  java
  • node里读取命令行参数

    一、process.env

    process.env属性返回一个包含用户环境信息的对象。

    最常见的需求,前端需要根据不同的环境(dev,prd),来调用不同的后端接口。如果用webpack,是这么做的:
    1)package.json里的命令:

    "scripts": {
    "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
    "build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
    },
    

      

    2)webpack.config.js获取

    console.log(process.env.NODE_ENV) //执行npm run dev,打印development
    

    事实上,以上从命令行获取环境变量这个件事跟webpack没有关系,执行node文件也可以这样获取。
    1)新建文件test.js:

    console.log(global.process.env.a);

    2)命令行执行test.js:

    a=1 node test.js

    命令行输出a的值1。

    题外话,如果顺序改变呢?命令行执行下面的命令

    node test.js a=1
    

    测试结果:test.js能被执行,但获取不到a的值。

    global.process.env.a这个变量在这次node命名结束前都能获取到,如果是以后执行也能获取到,就需要用以下的命令(mac linux):

    export a=2 && node test.js


    这条命令运行后,只要运行node文件,在文件里可以得到 global.process.env.a的值为2.

     二 、process.argv

    还记得前面说过,下面的命令无法通过 process.env 获取。

    node test.js a=1
    

    这时候就要用到process.argv。他返回当前进程的所有命令行参数,是个数组,前2个元素是node命令路径和被执行的文件路径:

    所以经常见到 

    process.argv.slice(2)
    

     

    process是node的全局变量,不用require直接能访问。中文文档标注为:进程对象。它提供当前 Node.js 进程的有关信息,以及控制当前 Node.js 进程。

  • 相关阅读:
    mybatis中crud操作范例
    Guava----Function
    Spring mvc Controller接口
    简单的验证码识别(opecv)
    Mat转换为QImage
    将多张图片无缝拼接方法
    模式识别---图像二值化
    双边过滤算法
    C++对于大型图片的加载缩放尝试
    ijg库解码超大型jpeg图片
  • 原文地址:https://www.cnblogs.com/xiaochongchong/p/9598276.html
Copyright © 2011-2022 走看看