用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 相关文章推荐
由Javascript实现的页面日历
Nov 04 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
Feb 23 Javascript
JQuery结合CSS操作打印样式的方法
Dec 24 Javascript
使用js判断TextBox控件值改变然后出发事件
Mar 07 Javascript
跟我学习javascript的函数和函数表达式
Nov 16 Javascript
jquery mobile开发常见问题分析
Jan 21 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
Mar 14 Javascript
BootStrap中Table隐藏后显示问题的实现代码
Aug 31 Javascript
JavaScript事件委托原理与用法实例分析
Jun 07 Javascript
vue-router 源码实现前端路由的两种方式
Jul 02 Javascript
从零开始搭建vue移动端项目到上线的步骤
Oct 15 Javascript
Vue项目开发常见问题和解决方案总结
Sep 11 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
PHP4实际应用经验篇(3)
2006/10/09 PHP
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
php后退一页表单内容保存实现方法
2012/06/17 PHP
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
jQuery中的val()示例应用
2014/02/26 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
AngularJS语法详解
2015/01/23 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
微信小程序本作用域下调用全局JS详解及实例
2017/02/22 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
nodejs 生成和导出 word的实例代码
2018/07/31 NodeJs
Javascript之高级数组API的使用实例
2019/03/08 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
2019/04/29 Javascript
亲自动手实现vue日历控件
2019/06/26 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
python访问类中docstring注释的实现方法
2015/05/04 Python
python让列表倒序输出的实例
2018/06/25 Python
详解python执行shell脚本创建用户及相关操作
2019/04/11 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
澳大利亚在线奢侈品时尚零售平台:Azura Runway
2021/01/13 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
自行车租赁公司创业计划书
2014/01/28 职场文书
光信息科学与技术专业职业生涯规划
2014/03/13 职场文书
合作意向协议书范本
2014/03/31 职场文书
公证委托书大全
2014/04/04 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书
Mysql排序的特性详情
2021/11/01 MySQL
Apache POI的基本使用详解
2021/11/07 Servers
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python