用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 相关文章推荐
Flash对联广告的关闭按钮讨论
Jan 30 Javascript
javascript 面向对象,实现namespace,class,继承,重载
Oct 29 Javascript
javascript 闭包疑问
Dec 30 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
Mar 11 Javascript
[原创]Javascript 实现广告后加载 可加载百度谷歌联盟广告
May 11 Javascript
基于jQuery实现表格的排序
Dec 02 Javascript
漂亮实用的页面loading(加载)封装代码
Feb 03 Javascript
js仿QQ邮箱收件人选择与搜索功能
Feb 10 Javascript
self.attachevent is not a function的解决方法
Apr 04 Javascript
简单的Vue异步组件实例Demo
Dec 27 Javascript
JavaScript使用math.js进行精确计算操作示例
Jun 19 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
解决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
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
2010/06/04 PHP
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
请离开include_once和require_once
2013/07/18 PHP
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
js 图片轮播(5张图片)
2008/12/30 Javascript
javascript call方法使用说明
2010/01/11 Javascript
jquery.jstree 增加节点的双击事件代码
2010/07/27 Javascript
让JavaScript拥有类似Lambda表达式编程能力的方法
2010/09/12 Javascript
23个超流行的jQuery相册插件整理分享
2011/04/25 Javascript
js的alert弹出框出现乱码解决方案
2013/09/02 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错
2018/11/06 Javascript
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
CheapTickets香港机票预订网站:CheapTickets.hk
2019/06/26 全球购物
Android interview questions
2016/12/25 面试题
个人自我鉴定范文
2013/10/04 职场文书
路政管理专业推荐信
2013/11/11 职场文书
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
单位介绍信范文
2014/01/18 职场文书
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
倡议书作文
2015/01/19 职场文书
单位接收证明格式
2015/06/18 职场文书
学校远程教育工作总结
2015/08/11 职场文书
2019学子的答谢词范本!
2019/07/05 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL
Python学习之时间包使用教程详解
2022/03/21 Python