Amadeus's blog Amadeus's blog
首页
  • 前端文章

    • JavaScript
    • Vue
    • TypeScript
    • 前端工程化
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
  • HTML
  • CSS
  • stylus
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 口语
  • 音标
  • 语法
  • 简单
  • 中等
  • 困难
  • 20年10月
  • 20年11月
  • 20年12月
  • 21年01月
  • 21年02月
  • 21年03月
  • 21年04月
  • 21年05月
  • 21年06月
  • 21年07月
  • 21年08月
  • 21年09月
  • 21年10月
  • 21年11月
  • 21年12月
  • 22年01月
  • 22年02月
  • 22年03月
  • 22年04月
  • 22年05月
  • 22年06月
  • 22年07月
  • 22年08月
  • 22年09月
  • 21年3月
  • 知识笔记
  • 22年5月
  • 22年8月
  • 22年9月
  • 学习
  • 书法
  • 面试
  • 音乐
  • 驾照
  • 深度强化学习
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Amadeus

起风了,唯有努力生存!
首页
  • 前端文章

    • JavaScript
    • Vue
    • TypeScript
    • 前端工程化
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
  • HTML
  • CSS
  • stylus
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 口语
  • 音标
  • 语法
  • 简单
  • 中等
  • 困难
  • 20年10月
  • 20年11月
  • 20年12月
  • 21年01月
  • 21年02月
  • 21年03月
  • 21年04月
  • 21年05月
  • 21年06月
  • 21年07月
  • 21年08月
  • 21年09月
  • 21年10月
  • 21年11月
  • 21年12月
  • 22年01月
  • 22年02月
  • 22年03月
  • 22年04月
  • 22年05月
  • 22年06月
  • 22年07月
  • 22年08月
  • 22年09月
  • 21年3月
  • 知识笔记
  • 22年5月
  • 22年8月
  • 22年9月
  • 学习
  • 书法
  • 面试
  • 音乐
  • 驾照
  • 深度强化学习
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • TypeScript笔记

  • 前端工程化

    • 为何要前端工程化
    • 前端工程化发展历史
    • 工程化关键技术
    • Webpack快速入门
    • ZBestPC项目工程化
    • Vue2-Elm项目升级
    • 脚手架
      • React项目
      • ZBestPC项目React化
      • Vite入门
      • 前端性能优化
      • Webpack源码分析
      • vue-loader源码分析
    • 面试

    • 小程序

    • Vue3源码解析

    • 设计模式

    • NestJS笔记

    • JavaScript文章

    • Vue文章

    • 学习笔记

    • 前端
    • 前端工程化
    Amadeus
    2022-12-02
    目录

    脚手架

    # 脚手架

    # 脚手架执行流程

    image-20221202194347141

    # 基本概念

    环境变量

    软链接

    vue、which、env、node都是脚手架

    # 脚手架执行原理

    • 在终端输入vue create vue-test-app
    • 终端解析出vue 命令
    • 终端在环境变量中找到 vue 命令
    • 终端根据 vue 命令链接到实际文件 vue.js
    • 终端利用node 执行 vue.js
    • vue.js解析 command /options
    • vue.js执行 command
    • 执行完毕,退出执行

    # 脚手架开发入门

    创建npm项目

    创建脚手架入口文件,最上方添加:

    #!/usr/bin/env node
    
    1

    配置 package.json, 添加bin属性

    编写脚手架代码

    将脚手架发布到npm

    # imooc-ls文件浏览器开发

    创建npm项目配置bin文件

    使用npm的npm link命令,即可在终端输入bin下的键名执行对应键值里的js文件

    # Unix文件权限体系

    文件夹bin: d rwx r-x r-x

    package.json: - rw- r-- r--

    第一个字母表示文件类型,后面以三个为一组,各组名称为ugo,每一组由rwx组成

    r:可访问、w:可编辑、x:可执行

    u:当前登录用户权限、g:当前登录用户所在分组、o:其他用户

    # Unix使用32位二进制数存储文件类型和权限

    0000(文件类型)000(特殊权限)000(用户权限)000(分组权限)000(其他权限)

    # 自动化测试

    使用mocha进行测试

    # 脚手架框架搭建

    commander

    {Program}

    {subcommand}

    实现命令行参数分割【官方案例】

    # commander options基础特性

    option的四种定义方式

    • -s 80
    • -s80
    • --separator 80
    • --separator=80

    # commander options高级特性

    参数连写。

    表示必须输入,[string]表示可以不输入。

    [letters...] 三个.表示可传入数组。使用--表示截断数组的输入。

    addOption()以及new Option(),给参数进行更多的配置。

    自定义option

    # command基本用法

    使用commander下的异常类进行抛错

    # Argument高级用法

    new Argument()

    addArgument()

    hook() 'preAction' 在Action执行前执行

    ​ 'postAction'在Action执行后执行

    # node版本校验

    # 开启子进程

    # 子进程通信

    # 端口冲突检测 detect-port

    # nodejs的net库

    使用net进行socket连接与通信

    # Inquirer.js 命令行交互界面

    使用各种类型的question

    当配置文件被修改时,重新启动问答服务

    image-20221207152137156

    # npmlog

    按顺序加载模块,需要在加载前修改好日志的配置才会有效

    # 注册Hooks

    如何在json中写hooks?

    可以写模块的文件名,进行加载。

    # 触发Hooks

    # 模块加载

    直接加载js、mjs文件。根据路径加载文件。

    # 注册插件

    依赖于条件判断

    数组

    整体是个function

    # 加载插件

    # webpack-chain

    # 插件之间传递值

    # 自定义webpack路径

    # 内置插件

    编辑 (opens new window)
    Vue2-Elm项目升级
    React项目

    ← Vue2-Elm项目升级 React项目→

    最近更新
    01
    最长递增子序列
    04-21
    02
    非递减子序列
    04-21
    03
    全排列
    04-21
    更多文章>
    Theme by Vdoing | Copyright © 2020-2024 Amadeus | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式