用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 相关文章推荐
JS启动应用程序的一个简单例子
May 11 Javascript
vs2003 js文件编码问题的解决方法
Mar 20 Javascript
jquery得到font-size属性值实现代码
Sep 30 Javascript
JavaScript设置首页和收藏页面的小例子
Nov 11 Javascript
javascript将url中的参数加密解密代码
Nov 17 Javascript
jquery利用命名空间移除绑定事件的方法
Mar 11 Javascript
JavaScript模拟数组合并concat
Mar 06 Javascript
Bootstrap学习笔记之css样式设计(1)
Jun 07 Javascript
基于vuejs+webpack的日期选择插件
May 21 Javascript
js中的事件委托或是事件代理使用详解
Jun 23 Javascript
基于axios 解决跨域cookie丢失的问题
Sep 26 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
Feb 04 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 程序员应该使用的10个组件
2009/10/31 PHP
php引用传值实例详解学习
2013/11/06 PHP
php中mkdir函数用法实例分析
2014/11/15 PHP
php构造方法中析构方法在继承中的表现
2016/04/12 PHP
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
基于jQuery判断两个元素是否有重叠部分的代码
2012/07/25 Javascript
jquery 鼠标滑动显示详情应用示例
2014/01/24 Javascript
js实现用户注册协议倒计时的方法
2015/01/21 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
vue cli 3.0 使用全过程解析
2018/06/14 Javascript
100行代码实现一个vue分页组功能
2018/11/06 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
JavaScript实现省份城市的三级联动
2020/02/11 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
使用grappelli为django admin后台添加模板
2014/11/18 Python
Python实现批量下载文件
2015/05/17 Python
Django中间件实现拦截器的方法
2018/06/01 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
Django REST framework 视图和路由详解
2019/07/19 Python
对python 中re.sub,replace(),strip()的区别详解
2019/07/22 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
2020/09/21 Python
如何高效率的查找一个月以内的数据
2012/04/15 面试题
英语商务邀请函范文
2014/01/16 职场文书
优秀通讯员事迹材料
2014/01/28 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
业务员自荐信范文
2014/04/20 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
详细介绍python操作RabbitMq
2022/04/12 Python