用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 相关文章推荐
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
Mar 07 Javascript
JQuery将文本转化成JSON对象需要注意的问题
May 09 Javascript
javascript中xml操作实现代码
Nov 21 Javascript
javaScript对文字按照拼音排序实现代码
Dec 27 Javascript
jquery form 加载数据示例
Apr 21 Javascript
js生成缩略图后上传并利用canvas重绘
May 15 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
Mar 03 Javascript
angular ngClick阻止冒泡使用默认行为的方法
Nov 03 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
Sep 16 Javascript
页面内锚点定位及跳转方法总结(推荐)
Apr 24 Javascript
实用的Vue开发技巧
May 30 Javascript
微信小程序 this.triggerEvent()的具体使用
Dec 10 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批量删除jQuery操作
2017/07/23 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
javascript break指定标签打破多层循环示例
2014/01/20 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
JS实现的简单标签点击切换功能示例
2017/09/21 Javascript
认识jQuery的Promise的具体使用方法
2017/10/10 jQuery
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
jquery+css实现Tab栏切换的代码实例
2019/05/14 jQuery
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
python thread 并发且顺序运行示例
2009/04/09 Python
浅谈python中截取字符函数strip,lstrip,rstrip
2015/07/17 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
使用Tensorflow实现可视化中间层和卷积层
2020/01/24 Python
jupyter notebook 重装教程
2020/04/16 Python
Python数据可视化图实现过程详解
2020/06/12 Python
使用CSS实现阅读进度条
2017/02/27 HTML / CSS
浅谈CSS3 box-sizing 属性 有趣的盒模型
2019/04/02 HTML / CSS
中国宠物用品商城:E宠商城
2016/08/27 全球购物
施华洛世奇澳大利亚官网:SWAROVSKI澳大利亚
2017/01/06 全球购物
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
澳大利亚购买健身器材网站:Gym Direct
2019/12/19 全球购物
Delphi CS笔试题
2014/01/04 面试题
医药学专业大学生职业生涯规划书论文
2014/01/21 职场文书
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
文明单位创建材料
2014/12/24 职场文书
医院志愿者活动总结
2015/05/06 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP