用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 相关文章推荐
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
Dec 22 Javascript
解决 firefox 不支持 document.all的方法
Mar 12 Javascript
手把手教你自己写一个js表单验证框架的方法
Sep 14 Javascript
从数组中随机取x条不重复数据的JS代码
Dec 24 Javascript
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
Jun 02 Javascript
完美实现八种js焦点轮播图(上篇)
Jul 18 Javascript
移动开发之自适应手机屏幕宽度
Nov 23 Javascript
基于Vue如何封装分页组件
Dec 16 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 jQuery
angular内置provider之$compileProvider详解
Sep 27 Javascript
js实现继承的方法及优缺点总结
May 08 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
Nov 01 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
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
PHP微信开发用Cache 解决数据缓存
2016/07/11 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
Javascript的并行运算实现代码
2010/11/19 Javascript
jquery 获取标签名(tagName)示例代码
2013/07/11 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
2014/01/14 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
JavaScript提升性能的常用技巧总结【经典】
2016/06/20 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
使用JQuery中的trim()方法去掉前后空格
2016/09/16 Javascript
Ionic学习日记实现验证码倒计时
2018/02/08 Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
2018/05/14 Javascript
Vue利用History记录上一页面的数据方法实例
2018/11/02 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
python中调试或排错的五种方法示例
2019/09/12 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
2021/01/07 Python
应届生服装设计自我评价
2013/09/20 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
供电工程专业求职信
2014/08/09 职场文书
教师节倡议书2015
2015/04/27 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
Mysql Show Profile
2021/04/05 MySQL
Spring整合Mybatis的全过程
2021/06/28 Java/Android