create-nuxt-app 源码初探

目录结构

主要执行文件结构

.
├── cli.js
├── prompts.js
├── saofile.js
├── template

文件说明

  • cli.js: 主要提供命令行参数处理
  • prompts.js: 交互回答问题的配置 基本就是一个json文件
  • saofile.js: 针对交互回答, 进行文件的add modify move等操作
  • template: 各框架所需的模板代码

templete 目录结构

.
├── template
│   ├── frameworks
│   │   ├── adonis
│   │   ├── ant-design-vue
│   │   ├── ava
│   │   ├── buefy
│   │   ├── element-ui
│   │   ├── express
│   │   ├── fastify
│   │   ├── feathers
│   │   ├── framevuerk
│   │   ├── hapi
│   │   ├── iview
│   │   ├── jest
│   │   ├── koa
│   │   ├── micro
│   │   └── vuetify
│   └── nuxt
│       ├── assets
│       ├── components
│       ├── layouts
│       ├── middleware
│       ├── pages
│       ├── plugins
│       ├── static
│       └── store

原理

  • cli接收各种参数
  • sao 进行模板文件处理
    • 设置问题与答案
    • 针对用户的回答, 在template文件夹存放好各种回答需要的框架代码, 进行不同的action add , move, modify等

依赖分析

  • cac: 命令行与JS交互框架 https://www.npmjs.com/package/cac
  • sao: 互动回答式
  • chalk: 多种颜色 输出在控制台
  • validate-npm-package-name: 验证包名是否正确

单元测试

  • 遍历prompts问题的所有选项, 然后sao提供了sao.mock方法 不实际生成文件, 会给出类似的结构数据
  • 结构数据生成snasphots

是典型的白盒功能测试

© 404mzk all right reserved,powered by Gitbookhttp://blog.404mzk.com 该文件修订时间: 2020-02-09 21:20:14

results matching ""

    No results matching ""