node.js & read argv

https://nodejs.org/docs/latest/api/process.html

https://flaviocopes.com/node-cli-args/

https://stackoverflow.com/questions/4351521/how-do-i-pass-command-line-arguments-to-a-node-js-program


"use strict"; /**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
*
* @description APP_ENV Genarator
* @augments
* @example
*
*/ const fs = require("fs"); const args = process.argv.slice(2); console.log(`process.argv =`, process.argv);
console.log(`args =`, args); const filename = "./fs.open.js"; fs.open(filename, "r", (err, fd) => {
if (err) {
fs.writeFile(filename, `export const APP_ENV = "preview";`, (err, fd) => {
if(err) {
console.log(`writeFile err =`, err);
}
console.log("The file was created!");
let env = "preview";
console.log("The file was saved!", env);
});
} else {
// truncated 截断 === empty ???
console.log("The file exists!");
// console.log("The file isn't exists!");
fs.writeFile(filename, `// truncated 截断 === empty`, (err, fd) => {
if(err) {
console.log(`writeFile err =`, err);
}
console.log("The file was truncated!");
});
}
});
## js path

$ node env-generator.js key=value

OK


"use strict"; /**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
*
* @description APP_ENV Genarator
* @augments
* @example
*
*/ const fs = require("fs"); const args = process.argv.slice(2); console.log(`process.argv =`, process.argv);
console.log(`args =`, args);
console.log(`args.toString().substr(4) =`, args.toString().substr(4)); const filename = "./fs.open.js"; fs.open(filename, "r", (err, fd) => {
if (err) {
fs.writeFile(filename, `export const APP_ENV = "preview";`, (err, fd) => {
if(err) {
console.log(`writeFile err =`, err);
}
console.log("The file was created!");
let env = "preview";
console.log("The file was saved!", env);
});
} else {
// truncated 截断 === empty ???
console.log("The file exists!");
// console.log("The file isn't exists!");
fs.writeFile(filename, `// truncated 截断 === empty`, (err, fd) => {
if(err) {
console.log(`writeFile err =`, err);
}
console.log("The file was truncated!");
});
}
});

APP_ENV


const env={
testing:'',
dev:'',
local:'',
statging:'',
product:''
}

npm scripts

$ node env-generator env=testing
$ node env-generator env=dev
$ node env-generator env=local
$ node env-generator env=statging
$ node env-generator env=product

OR

$ node env-generator.js env=testing
$ node env-generator.js env=dev
$ node env-generator.js env=local
$ node env-generator.js env=statging
$ node env-generator.js env=product

"use strict"; /**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms 2019.05.12
*
* @description APP_ENV Genarator
* @augments
* @example node env-generator.js env=dev
*
*/ const fs = require("fs"); const env = process.argv.slice(2)[0].substr(4);
const filename = "./env.js"; fs.open(filename, "r", (err, fd) => {
console.log("APP_ENV =", env);
if (err) {
fs.writeFile(filename, `export const APP_ENV = "${env}";`, (err, fd) => {
if(err) {
console.log(`writeFile err =`, err);
}
});
} else {
fs.writeFile(filename, `export const APP_ENV = "${env}";`, (err, fd) => {
if(err) {
console.log(`writeFile err =`, err);
}
});
}
});

new version



"use strict";

/**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms 2019.05.12
*
* @description APP_ENV Genarator
* @augments
* @example node env-generator.js env=dev
*
*/ const fs = require("fs"); const env = process.argv.slice(2)[0].substr(4);
const filename = "./env.js"; fs.open(filename, "r", (err, fd) => {
console.log("APP_ENV =", env);
if (err) {
fs.writeFile(filename, `const APP_ENV = "${env}";\nexport default APP_ENV;`, (err, fd) => {
if(err) {
console.log(`writeFile err =`, err);
}
});
} else {
fs.writeFile(filename, `const APP_ENV = "${env}";\nexport default APP_ENV;`, (err, fd) => {
if(err) {
console.log(`writeFile err =`, err);
}
});
}
});

app.js



import APP_ENV from "./env";
console.log(`APP_ENV = `, APP_ENV, typeof(APP_ENV), APP_ENV.length);

// import * as APP_ENV from "./env";
// console.log(`APP_ENV = `, APP_ENV, typeof(APP_ENV), APP_ENV.length);
// APP_ENV = {APP_ENV: "dev", __esModule: true} import * as ENV from "./env";
console.log(`ENV.APP_ENV = `, ENV.APP_ENV, typeof(ENV.APP_ENV), ENV.APP_ENV.length);
// ENV.APP_ENV = dev string 3 // import * as APP_ENV from "./env";
// console.log(`APP_ENV = `, APP_ENV, typeof(APP_ENV), APP_ENV.length);
// APP_ENV = {APP_ENV: "dev", __esModule: true} // import * as ENV from "./env";
// console.log(`ENV.APP_ENV = `, ENV.APP_ENV, typeof(ENV.APP_ENV), ENV.APP_ENV.length);
// ENV.APP_ENV = dev string 3 import {APP_ENV} from "./env";
console.log(`APP_ENV = `, APP_ENV, typeof(APP_ENV), APP_ENV.length);

node.js & read argv的更多相关文章

  1. Node.js:进程、子进程与cluster多核处理模块

    1.process对象 process对象就是处理与进程相关信息的全局对象,不需要require引用,且是EventEmitter的实例. 获取进程信息 process对象提供了很多的API来获取当前 ...

  2. Node.js:Buffer浅谈

    Javascript在客户端对于unicode编码的数据操作支持非常友好,但是对二进制数据的处理就不尽人意.Node.js为了能够处理二进制数据或非unicode编码的数据,便设计了Buffer类,该 ...

  3. Node.js npm 详解

    一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...

  4. Node.js process 模块常用属性和方法

    Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...

  5. 为Node.js编写组件的几种方式

    本文主要备忘为Node.js编写组件的三种实现:纯js实现.v8 API实现(同步&异步).借助swig框架实现. 关键字:Node.js.C++.v8.swig.异步.回调. 简介 首先介绍 ...

  6. Node.js入门:模块机制

    CommonJS规范      早在Netscape诞生不久后,JavaScript就一直在探索本地编程的路,Rhino是其代表产物.无奈那时服务端JavaScript走的路均是参考众多服务器端语言来 ...

  7. 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)

    了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编   赵静 译 ISBN 978-7-121-21769-2 2 ...

  8. NODE.JS开发指南学习笔记2

    1.核心模块 核心模块是Node.js的心脏,由一些精简高效的库组成,为其提供了基本的API.2.全局对象 global.所有的的全局变量都是其属性.其根本的作用是作为全局变量的宿主.3.全局变量 1 ...

  9. [转]ReactPHP── PHP版的Node.js

    FROM : http://www.csdn.net/article/2015-10-12/2825887 摘要:ReactPHP作为Node.js的PHP版本.在实现思路,使用方法,应用场景上的确有 ...

随机推荐

  1. your service shouldn’t know anything about HTTP headers, or gRPC error codes 干净架构 服务不应知道 HTTP头、gRPC错误码 服务仅知道服务相关的

    Go kit - Frequently asked questions https://gokit.io/faq/ Services - What is a Go kit service? Servi ...

  2. 简单makefile

    https://www.cnblogs.com/prettyshuang/p/5552328.html#_label0

  3. 内存屏障 WriteBarrier 垃圾回收 屏障技术

    https://baike.baidu.com/item/内存屏障 内存屏障,也称内存栅栏,内存栅障,屏障指令等, 是一类同步屏障指令,是CPU或编译器在对内存随机访问的操作中的一个同步点,使得此点之 ...

  4. Centos虚拟机上安装部署Tenginx,以及部署过程中遇到的问题

    Tenginx下载网址: Tenginx 官网地址:http://tengine.taobao.org/ Tenginx的官方网址中可以阅读Nginx的文档,可以选择中文进行阅读.下载Tengine- ...

  5. 一:整合shiro

    整合shiro 1.原生的整个 1.1 创建项目 1.2 创建Realm 1.3 配置shiro 2.使用Shiro Starter 2.1 项目创建 2.2 创建Realm 2.3 配置Shiro ...

  6. 利用Javascript制作网页特效(其他常见特效)

    设置为首页和加入收藏夹 ①:在body标签内输入以下代码: <a onclick="this.style.behavior='url(#default#homepage)'; this ...

  7. 深复制VS浅复制(MemberwiseClone方法介绍)

    MemberwiseClone方法,属于命名空间System,存在于程序集 mscorlib.dll中.返回值是System.Object.其含义是:创建一个当前object对象的浅表副本. MSDN ...

  8. 翻译:《实用的Python编程》01_Introduction_00_Overview

    目录 | 下一节 (2 处理数据) 1. Python 简介 本章是第一章,将会从头开始介绍 Python 基础知识,让你从零开始,学会怎么编写.运行.调试一个简单的程序.最后,你可以运用这些 Pyt ...

  9. 《C++ Primer》Chapter 7 [类]

    前言 在C++中,我们使用类定义自己得数据类型/通过定义新的类型来反应待解决的题的各种概念,是我们更容易编写.调试和修改程序. 我们需要主要关注数据抽象的重要性.数据抽象能帮助我们将对象的具体实现与对 ...

  10. fiddler抓包+安卓机 完成手机app抓包的配置 遇到的一些问题

    fiddler抓包+安卓模拟器完成手机app抓包的配置:fiddler抓包+雷电模拟器 完成手机app抓包的配置 其实在安卓真机上弄比在虚拟机上弄更麻烦一点,它们的步骤都差不多一样,就是在安卓真机上弄 ...