用Node写一条配置环境的指令


Posted in Javascript onNovember 14, 2019

前言

工作中需要维护一个极老的项目,说来话长。在平时当需要往项目里添加新的模块时,我需要手动添加的东西太多了。由此希望通过编写一条node命令,可以让我一键完成配置我需要配置的东西,比如:路由,控制器,less文件等。最后我只需要在生成的模板index.jsx中写我们可爱的模块代码就行了。

用Node写一条配置环境的指令

如何创建Node命令?

$ mkdir my-plugin
$ cd my-plugin
$ npm init --yes

配置package的脚本命令

{ "name": "12", "version": "1.0.0", "description": "", "main": "index.js", "scripts": {  "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "bin": {  "autocode": "bin/wflow.js" }, "dependencies": {  "inquirer": "^7.0.0" }}

创建脚本js

#!/usr/bin/env node
console.log('hello word');

全局安装node命令

npm install . -g

用Node写一条配置环境的指令

以上就是创建node指令的方法,下面介绍如何编写生成代码脚本。

inquirer的使用

列举用到的属性,更多用法请自行学习。

1.input

const promptList = [{
  type: 'input',
  message: '设置一个用户名:',
  name: 'name',
  default: "test_user" // 默认值
},{
  type: 'input',
  message: '请输入手机号:',
  name: 'phone',
  validate: function(val) {
    if(val.match(/\d{11}/g)) { // 校验位数
      return val;
    }
    return "请输入11位数字";
  }
}];

inquirer.prompt(promptList).then(answers => {});

效果:

用Node写一条配置环境的指令

2.list

const promptList = [ {  type: "list",  message: "作者帅吗:",  name: "iscool",  choices: ['帅','一般帅'], }, { type: "list", message: "帅得什么级别:", name: "client", choices: ['吴彦祖','彭于晏'], when:function(answers){  return answers.iscool === '帅' }, filter: function(val) { }},];
inquirer.prompt(promptList).then(answers => {});

用Node写一条配置环境的指令

when用于标记此条询问何时出现!!!!

编写脚本添加模版

笔者要添加模版为以下:

用Node写一条配置环境的指令

以在page文件夹下添加index.jsx和index.module.less为例子:

function action(module_name, module_title) { 
 let url = 'https://raw.githubusercontent.com/justworkhard/Daily-Blog/master/2019-11/12/file/temp.jsx' fs.mkdir("app/page/" + module_name, () => {  fs.writeFileSync("app/page/" + module_name + "/index.module.less", "");  https.get(url,(res)=>{   res.setEncoding('utf8');    let rawData = '';    res.on('data', (chunk) => {    rawData += chunk;   });   res.on('end', () => {    fs.writeFileSync("app/page/" + module_name + "/index.jsx", rawData);   });  }) });
}

先是在page文件夹下面添加module的文件夹,使用http将线上的index.jsx模版拉下来放到创建的module文件夹下面。

结语

总的来说,通过一条node指令完成了新建模块所需的配置并不一定能节省多少时间,但却非常酷,不是吗?

链接:https://github.com/justworkhard/autocode.git

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
如何做到打开一个页面,过几分钟自动转到另一页面
Apr 20 Javascript
javascript中RegExp保留小数点后几位数的方法分享
Aug 13 Javascript
高性能JavaScript 重排与重绘(2)
Aug 11 Javascript
js实现网页多级级联菜单代码
Aug 20 Javascript
移动端js触摸事件详解
Sep 18 Javascript
详解VueJs异步动态加载块
Mar 09 Javascript
JavaScript 过滤关键字
Mar 20 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
Jul 06 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
Aug 07 Javascript
微信小程序页面间跳转传参方式总结
Jun 13 Javascript
JS回调函数 callback的理解与使用案例分析
Sep 09 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
Aug 28 Javascript
解决vue语法会有延迟加载显现{{xxx}}的问题
Nov 14 #Javascript
微信公众号H5之微信分享常见错误和问题(小结)
Nov 14 #Javascript
Jquery让form表单异步提交代码实现
Nov 14 #jQuery
vue之延时刷新实例
Nov 14 #Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
Nov 14 #Javascript
vue自定义正在加载动画的例子
Nov 14 #Javascript
如何在wxml中直接写js代码(wxs)
Nov 14 #Javascript
You might like
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
2013/02/14 PHP
php使用百度翻译api示例分享
2014/01/31 PHP
javascript 函数速查表
2010/02/07 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
javascript自启动函数的问题探讨
2013/10/05 Javascript
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
JavaScript中的全局对象介绍
2015/01/01 Javascript
javascript实现动态加载CSS
2015/01/26 Javascript
JS实现自适应高度表单文本框的方法
2015/02/25 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
Postman动态获取返回值过程详解
2020/06/30 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
Python标准库与第三方库详解
2014/07/22 Python
用Python的线程来解决生产者消费问题的示例
2015/04/02 Python
详解Python中for循环的使用
2015/04/14 Python
python中base64加密解密方法实例分析
2015/05/16 Python
python构建深度神经网络(DNN)
2018/03/10 Python
浅谈Python脚本开头及导包注释自动添加方法
2018/10/27 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
营销总经理岗位职责
2014/02/02 职场文书
群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
期中考试后的感想
2015/08/07 职场文书