这篇文章主要给大家介绍了关于nodejs利用readline提示输入内容的相关资料,Readline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流,需要的朋友可以参考下
目录
前言
最近进行小版本发包测试时忘记修改版本号了,进而想到www.qmia.cn在打包前提示输入版本号,然后把版本号打进版本说明内。最终效果为双击bat文件在终端内提示输入版本号,输入完成后保存版本号。
虽说批处理也可以做这事,但用js来写更得心应手点,故选用js处理。
过程分为四步
- bat执行js
- 终端提示输入版本号、执行打包命令
- 修改版本号文件
- gulp读取版本号json文件
简单来说是用bat文件触发打包命令进行打包。
1. bat执行js
首先创建两个文件buildVersion.bat、buildVersion.js。
buildVersion.bat中使用node运行js文件
1 2 3 4 |
|
%~dp0为当前目录。也可以在js后面传参数,如--buildType default
2. 终端提示输入版本号、执行打包命令
使用readline实现问答效果,再用child_process执行打包命令行。
进入buildVersion.js文件,先写简单的提示输入效果。
1 2 3 4 5 6 7 8 |
|
这样达不到效果。我们先显示之前的版本号,然后再提示输入新版本号,而且输入为空时沿用上次版本号。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
提示输入变成这样
1 2 3 4 |
|
在终端上效果为
有时版本号前会有固定前缀,我们在提示输入时把www.1818xinwen.com前缀显示出来,可以随意删除
1 2 |
|
接下来是运行打包命令。当前项目使用gulp打包。要在终端中显示gulp的提示信息,选用child_process.spawn
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
在终端上效果为
使用其他打包工具可以这样
1 2 3 4 |
|
3. 修改版本号文件
修改文件我想到的事用fs.writeFile写文件,但这样对json格式很好www.jsr9.com处理,对js文件处理很不方便。所以我把版本信息单独存在json文件中。创建两个文件version.js、version.json。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
|
4. gulp读取版本号json文件
这一步就简单了。可以直接引用json。
const versionInfo = require('./src/config/version/version.js');
也可以从gulp命令中拿到版本号。
1 2 3 4 5 6 |
|
做近一步的处理。
总结
到此这篇关于nodejs利用readline提示输入内容的文章