用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 相关文章推荐
浅析Node.js查找字符串功能
Sep 03 Javascript
js实现简单折叠、展开菜单的方法
Aug 28 Javascript
解决jQuery使用JSONP时产生的错误
Dec 02 Javascript
jQuery深拷贝Json对象简单示例
Jul 06 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
Jun 01 Javascript
Textarea输入字数限制实例(兼容iOS&安卓)
Jul 06 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
Feb 21 Javascript
解决Vue不能检测数组或对象变动的问题
Feb 24 Javascript
从零开始搭建webpack+react开发环境的详细步骤
May 18 Javascript
基于vue循环列表时点击跳转页面的方法
Aug 31 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
Apr 08 Javascript
LayUI动态设置checkbox不显示的解决方法
Sep 02 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 中执行系统外部命令
2006/10/09 PHP
php开发环境配置记录
2011/01/14 PHP
邮箱正则表达式实现代码(针对php)
2013/06/21 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
JavaScript将相对地址转换为绝对地址示例代码
2013/07/19 Javascript
nodejs实现黑名单中间件设计
2014/06/17 NodeJs
JavaScript事件 "事件对象"的注意要点
2016/01/14 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
react.js使用webpack搭配环境的入门教程
2017/08/14 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
2018/07/24 jQuery
webpack4简单入门实例
2018/09/06 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
React中使用UMEditor的方法示例
2019/12/27 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
2020/08/13 Javascript
python中cPickle用法例子分享
2014/01/03 Python
Python使用django获取用户IP地址的方法
2015/05/11 Python
Python中动态检测编码chardet的使用教程
2017/07/06 Python
对python中的pop函数和append函数详解
2018/05/04 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
Python如何定义有默认参数的函数
2020/08/10 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
儿科护士实习自我鉴定
2013/10/17 职场文书
同学聚会老师邀请函
2014/01/28 职场文书
淘宝文案策划岗位职责
2015/04/14 职场文书
SQL实现LeetCode(177.第N高薪水)
2021/08/04 MySQL