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 进程。

  • 相关阅读:
    memwatch使用简化
    memwatch检测内存泄露
    mtrace检测内存泄露
    2.14 环境变量及参数
    设计模式[索引]
    二叉树遍历
    AppCan 双击返回按钮退出应用
    MySQL语句相关经验总结
    mysql连接失败或出现“Too many connections”错误
    让IE的Button自适应文字宽度兼容
  • 原文地址:https://www.cnblogs.com/xiaochongchong/p/9598276.html
Copyright © 2011-2022 走看看