node.js & read argv
node.js & read argv
https://nodejs.org/docs/latest/api/process.html

https://flaviocopes.com/node-cli-args/
"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的更多相关文章
- Node.js:进程、子进程与cluster多核处理模块
1.process对象 process对象就是处理与进程相关信息的全局对象,不需要require引用,且是EventEmitter的实例. 获取进程信息 process对象提供了很多的API来获取当前 ...
- Node.js:Buffer浅谈
Javascript在客户端对于unicode编码的数据操作支持非常友好,但是对二进制数据的处理就不尽人意.Node.js为了能够处理二进制数据或非unicode编码的数据,便设计了Buffer类,该 ...
- Node.js npm 详解
一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...
- Node.js process 模块常用属性和方法
Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...
- 为Node.js编写组件的几种方式
本文主要备忘为Node.js编写组件的三种实现:纯js实现.v8 API实现(同步&异步).借助swig框架实现. 关键字:Node.js.C++.v8.swig.异步.回调. 简介 首先介绍 ...
- Node.js入门:模块机制
CommonJS规范 早在Netscape诞生不久后,JavaScript就一直在探索本地编程的路,Rhino是其代表产物.无奈那时服务端JavaScript走的路均是参考众多服务器端语言来 ...
- 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)
了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编 赵静 译 ISBN 978-7-121-21769-2 2 ...
- NODE.JS开发指南学习笔记2
1.核心模块 核心模块是Node.js的心脏,由一些精简高效的库组成,为其提供了基本的API.2.全局对象 global.所有的的全局变量都是其属性.其根本的作用是作为全局变量的宿主.3.全局变量 1 ...
- [转]ReactPHP── PHP版的Node.js
FROM : http://www.csdn.net/article/2015-10-12/2825887 摘要:ReactPHP作为Node.js的PHP版本.在实现思路,使用方法,应用场景上的确有 ...
随机推荐
- (005)每日SQL学习:关于物化视图的一系列创建等语句
--给用户授权 GRANT CREATE MATERIALIZED VIEW TO CDR; --创建物化视图的表日志(具体到某个表,物化视图中用到几个表就需要建立几个日志):当用FAST选项创建物化 ...
- go语言rpc学习
rpc 就是 远程过程调用 指的是调用远端服务器上的程序的方法整个过程. rpc 理论 RPC技术在架构设计上有四部分组成,分别是:客户端.客户端存根.服务端.服务端存根. 客户端:服务调用发 ...
- TCP随笔
目录 前言 正文 time_wait和rst fin与连接关闭 nagel和ack延迟算法 滑动窗口与拥塞控制 文末 总结 测试代码 前言 网上已经有大量关于tcp的文章,感觉作为一名技术人员,不写一 ...
- GeoMesa 环境搭建
GeoMesa 环境搭建 版本 虚拟机安装 os centos7 Centos安装 CentOS安装Jdk并配置环境变量 hadoop.hbase环境部署 geomesa_hbase部署 geoser ...
- centos6.5安装KVM,并在KVM中安装虚拟6.5系统
=============================环境搭建================================================== 1.检查CPU信息 KVM 需要 ...
- Nacos服务心跳和健康检查源码介绍
服务心跳 Nacos Client会维护一个定时任务通过持续调用服务端的接口更新心跳时间,保证自己处于存活状态,防止服务端将服务剔除,Nacos默认5秒向服务端发送一次,通过请求服务端接口/insta ...
- 使用C#实现数据结构堆
一. 堆的介绍: 堆是用来排序的,通常是一个可以被看做一棵树的数组对象.堆满足已下特性: 1. 堆中某个节点的值总是不大于或不小于其父节点的值 任意节点的值小于(或大于)它的所有后裔,所以最小元(或最 ...
- hdu-6699 Block Breaker
题意: 就是给你一个n行m列的矩形,后面将会有q次操作,每次操作会输入x,y表示要击碎第x行第y列的石块,当击碎它之后还去判断一下周围石块是否牢固 如果一个石块的左右两边至少一个已经被击碎且上下也至少 ...
- B-number HDU - 3652
题意: 找出区间[li,ri]有多少个符合要求的数: 1.这个数里面有13 2.这个数可以被13整除 题解: 这个题目和之前的有点不一样就是这个题目要我们求包含13的(之前做过的都是不包含).但是都差 ...
- ElasticSearch入门到筋痛
1. 什么是ES ES中文网:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html ES:是一款基于Lucene ...