前端架构: 脚手架开发流程中的难点梳理

脚手架的开发流程

1 )开发流程

  • 创建 npm 项目
  • 创建脚手架入口文件,最上方添加:
    • #!/usr/bin/env node
  • 配置 package.json, 添加 bin 属性
  • 编写脚手架代码
  • 将脚手架发布到 npm

2 )使用流程

  • 安装脚手架

    • npm install -g your-own-cli
  • 使用脚手架

    • your-own-cli

3 )脚手架开发难点

  • 分包: 将复杂的系统拆分成若干个模块,并且合并成一个复杂系统
  • 命令注册,如:
    • $ vue create
    • $ vue add
    • $ vue invoke
    • 这里需要了解,如何注册命令,以及执行命令
  • 参数解析
    • 如:vue command [options] <params>

    • options全称: --version, --help

    • options简写:-V, -h

    • 带params的options: --path /Users/xxx/.../vue-test

    • 帮助文档:

      • global help 是指对主命令进行帮助

        • Usage
        • Options
        • Commands
      • vue的帮助文档示例,这个属于 global help

        复制代码
        $ vue
        Usage: vue <command> [options]
        
        Options:
          -V, --version                              output the version number
          -h, --help                                 output usage information
        
        Commands:
          create [options] <app-name>                create a new project powered by vue-cli-service
          add [options] <plugin> [pluginOptions]     install a plugin and invoke its generator in an already created project
          invoke [options] <plugin> [pluginOptions]  invoke the generator of a plugin in an already created project
          inspect [options] [paths...]               inspect the webpack config in a project with vue-cli-service
          serve [options] [entry]                    serve a .js or .vue file in development mode with zero config
          build [options] [entry]                    build a .js or .vue file in production mode with zero config
          ui [options]                               start and open the vue-cli ui
          init [options] <template> <app-name>       generate a project from a remote template (legacy API, requires @vue/cli-init)
          config [options] [value]                   inspect and modify the config
          upgrade [semverLevel]                      upgrade vue cli service / plugins (default semverLevel: minor)
          info                                       print debugging information about your environment
        
          Run vue <command> --help for detailed usage of given command.
        • 可见,可通过 vue -V, 或 vue -h 可查看具体的信息
        • global help 只能表示主命令的用法,对于子命令,也同样需要
      • command help 子命令帮助

        • Usage
        • Options
      • 子命令的帮助信息,举例

        复制代码
        $ vue create
        Usage: create [options] <app-name>
        
        create a new project powered by vue-cli-service
        
        Options:
          -p, --preset <presetName>       Skip prompts and use saved or remote preset
          -d, --default                   Skip prompts and use default preset
          -i, --inlinePreset <json>       Skip prompts and use inline JSON string as preset
          -m, --packageManager <command>  Use specified npm client when installing dependencies
          -r, --registry <url>            Use specified npm registry when installing dependencies (only for npm)
          -g, --git [message]             Force git initialization with initial commit message
          -n, --no-git                    Skip git initialization
          -f, --force                     Overwrite target directory if it exists
          -c, --clone                     Use git clone when fetching remote preset
          -x, --proxy                     Use specified proxy when creating project
          -b, --bare                      Scaffold project without beginner instructions
          --skipGetStarted                Skip displaying "Get started" instructions
          -h, --help                      output usage information
        
          Missing required argument <app-name>.
    • 同样,还有很多,如:

      • 命令行交互: 可以选择
      • 日志打印: 标准打印
      • 命令行文字变色: 错误红色,警告黄色
      • 网络通信:HTTP/WebSocket
      • 文件处理
      • ...
相关推荐
天空属于哈夫克32 天前
企业微信二次开发:精准实现关键词自动回复
架构·企业微信
子兮曰2 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰2 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万2 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝2 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋2 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
晨米酱2 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
这个DBA有点耶2 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
卡布鲁2 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
码流子2 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构