用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 相关文章推荐
ExtJS 2.0实用简明教程 之Border区域布局
Apr 29 Javascript
Javascript writable特性介绍
Feb 27 Javascript
JavaScript模板引擎用法实例
Jul 10 Javascript
使用BootStrap实现悬浮窗口的效果
Dec 13 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
Feb 13 Javascript
详解Angular5 路由传参的3种方法
Apr 28 Javascript
angularjs 的数据绑定实现原理
Jul 02 Javascript
利用vue-i18n实现多语言切换效果的方法
Jun 19 Javascript
微信小程序数据统计和错误统计的实现方法
Jun 26 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
Aug 08 Javascript
纯js+css实现在线时钟
Aug 18 Javascript
js 图片懒加载的实现
Oct 21 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转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
PHP中Array相关函数简介
2016/07/03 PHP
PHP面向对象程序设计之类与反射API详解
2016/12/02 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
如何让div span等元素能响应键盘事件操作指南
2012/11/13 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
2015/12/25 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
JavaScript实现更换背景图片
2019/10/18 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
Python栈类实例分析
2015/06/15 Python
Python操作SQLite数据库的方法详解
2017/06/16 Python
Python实现针对给定单链表删除指定节点的方法
2018/04/12 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
python创建n行m列数组示例
2019/12/02 Python
Python如何用filter函数筛选数据
2020/03/05 Python
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
领导的自我鉴定
2013/12/28 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
数学考试作弊检讨书300字
2015/02/16 职场文书
中学生学习保证书
2015/02/26 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
七夕情人节问候语
2015/11/11 职场文书
python Tkinter的简单入门教程
2021/04/11 Python
MySQL基于索引的压力测试的实现
2021/11/07 MySQL
Python中异常处理用法
2021/11/27 Python