IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Yeoman -> 正文阅读

[JavaScript知识库]Yeoman

Yeoman

yeoman官网
Yeoman 是一个通用的脚手架系统允许创建任何的 app 。它可以迅速的搭建一个新项目,并且能够简化了现有项目的维护。

使用步骤:
1 明确需求 ( npm i -g Yo)
2 找到合适的Generator
3 全局范围安装Generator (npm i -g generator-node)
4 通过Yo 运行对应的Generator( Yo node)
5 通过命令行交互填写选项、
6 生成项目结构

自定义Generator

Generator实际上就是一个npm模块。
npm init -y初始一个npm模块

/**
 *  此文件作为Generator的核心入口
 *  需要导出一个继承自Yeoman Generator的类型
 *  Yeoman Generator在工作的时候,会自动调用我们在此类型中定义的一些生命周期方法
 *  我们在这些方法中可以通过调用父类提供的一个工具方法实现一些功能,比如文件写入
 */

const Genertaor = require("yeoman-generator");

module.exports = class extends Genertaor {
  writing() {
    // 自动生成文件阶段调用此方法
    this.fs.write(this.destinationPath("temp.txt"), Math.random().toString());
  }
};

继承Genertaor 类,父类提供了很多方法,比如this.fs,他是在node的fs的模块上面更进一层的封装。

根据模板创建文件

模板就是ejs模板,可以写入数据。

  writing() {
    // 自动生成文件阶段调用此方法
    //this.fs.write(this.destinationPath("temp.txt"), Math.random().toString());

    // 模板文件路径
    const tmpl = this.templatePath("foo.txt");
    //输出目标
    const output = this.destinationPath("foo.txt");

    const context = { title: "aa", test: "dd" };

    this.fs.copyTpl(tmpl, output, context);
  }

templatePath会自动去templates目录下找对应名字的模板,然后可以定义传给ejs模板的数据,通过copyTpl生成新的文件。

用户交互

module.exports = class extends Genertaor {
  prompting(){
    /**
     * Yeoman在询问用户环节会自动调用此方法
     * 在此方法中可以调用父类的prompt()方法发出对用户的命令询问
     */
    return this.prompt({
      type: 'input',
      name: "name",
      message: 'Your project name',
      default: this.appname, //项目生成目录名称
    }).then(answers=>{
      this.answers = answers
    })
  }
  writing() {
    // 自动生成文件阶段调用此方法
    //this.fs.write(this.destinationPath("temp.txt"), Math.random().toString());

    // 模板文件路径
    const tmpl = this.templatePath("foo.txt");
    //输出目标
    const output = this.destinationPath("foo.txt");

    const context = this.answers

    this.fs.copyTpl(tmpl, output, context);
  }
};

通过prompting方法可以实现与用户的交互

Plop

小而美的脚手架工具。项目的每个模块的结构骨架都非常相似,引入模版内容相同就可以使用Plop来实现自动化了,
Plop旨在根据模板文件自动化创建组件。
基本用法:

  • 将plop模块作为项目开发依赖安装
  • 在项目根目录下创建一个plopfile.js文件
  • 在plopfile.js文件中定义脚手架任务
  • 编写用于生成特定类型文件的模板
  • 通过plop提供的cli运行脚手架工具。

在这里插入图片描述
定义模板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建成功,以后开发可以自己生成组件模板,避免重复操作。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:09:15  更:2022-05-05 11:12:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:06:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码