用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 相关文章推荐
利用CSS、JavaScript及Ajax实现高效的图片预加载
Oct 16 Javascript
jQuery自定义事件的简单实现代码
Jan 27 Javascript
js格式化金额可选是否带千分位以及保留精度
Jan 28 Javascript
JavaScript面向对象编程入门教程
Apr 16 Javascript
jquery form 隐藏的input 选择
Apr 29 Javascript
JQuery仿小米手机抢购页面倒计时效果
Dec 16 Javascript
详细探究ES6之Proxy代理
Jul 22 Javascript
Vue配合iView实现省市二级联动的示例代码
Jul 27 Javascript
Vue 列表上下过渡效果的实例代码
Jun 25 Javascript
关于ckeditor在bootstrap中modal中弹框无法输入的解决方法
Sep 11 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
May 20 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
Sep 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
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
也谈php网站在线人数统计
2008/04/09 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
PHP读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
分享一个asp.net pager分页控件
2012/01/04 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
2020/04/21 Javascript
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
深入浅析Python2.x和3.x版本的主要区别
2018/11/30 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
pytorch 常用线性函数详解
2020/01/15 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
python3正则模块re的使用方法详解
2020/02/11 Python
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
金融专业毕业生推荐信
2013/11/26 职场文书
经典导游欢迎词大全
2014/01/16 职场文书
教师开学感言
2014/02/14 职场文书
简洁的英文求职信范文
2014/05/03 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
故意杀人案辩护词
2015/05/21 职场文书
2016学校元旦晚会经典开场白台词
2015/12/03 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书
高考升学宴主持词
2019/06/21 职场文书
python+opencv实现视频抽帧示例代码
2021/06/11 Python
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis