当前位置: 首页 > news >正文

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

脚手架的开发流程


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 informationCommands:create [options] <app-name>                create a new project powered by vue-cli-serviceadd [options] <plugin> [pluginOptions]     install a plugin and invoke its generator in an already created projectinvoke [options] <plugin> [pluginOptions]  invoke the generator of a plugin in an already created projectinspect [options] [paths...]               inspect the webpack config in a project with vue-cli-serviceserve [options] [entry]                    serve a .js or .vue file in development mode with zero configbuild [options] [entry]                    build a .js or .vue file in production mode with zero configui [options]                               start and open the vue-cli uiinit [options] <template> <app-name>       generate a project from a remote template (legacy API, requires @vue/cli-init)config [options] [value]                   inspect and modify the configupgrade [semverLevel]                      upgrade vue cli service / plugins (default semverLevel: minor)info                                       print debugging information about your environmentRun 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-serviceOptions:-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 informationMissing required argument <app-name>.
        
    • 同样,还有很多,如:
      • 命令行交互: 可以选择
      • 日志打印: 标准打印
      • 命令行文字变色: 错误红色,警告黄色
      • 网络通信:HTTP/WebSocket
      • 文件处理

相关文章:

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

脚手架的开发流程 1 &#xff09;开发流程 创建 npm 项目创建脚手架入口文件&#xff0c;最上方添加&#xff1a; #!/usr/bin/env node 配置 package.json, 添加 bin 属性编写脚手架代码将脚手架发布到 npm 2 &#xff09;使用流程 安装脚手架 npm install -g your-own-cli …...

django中配置使用websocket

Django 默认情况下并不支持 WebSocket&#xff0c;但你可以通过集成第三方库如 channels 来实现 WebSocket 功能。channels 是一个 Django 应用&#xff0c;它提供了对 WebSocket、HTTP2 和其他协议的支持。 下面是如何在 Django 项目中使用 WebSocket 的基本步骤&#xff1a;…...

Rust复合类型详解

在Rust中&#xff0c;复合类型是一种能够将多个值组合在一起的数据类型。本篇博客将介绍两种常见的复合类型&#xff1a;元组&#xff08;Tuple&#xff09;和数组&#xff08;Array&#xff09;。 Tuple&#xff08;元组&#xff09; 元组是Rust中的一种复合类型&#xff0c…...

学习 JavaScript 闭包

1. 前言 闭包是 JavaScript 中一种非常重要的概念&#xff0c;它允许函数访问其外部作用域中的变量&#xff0c;即使在函数被返回或者在其原始定义的作用域之外执行时仍然可以访问这些变量。 在讲解闭包之前我们得弄清楚下面的概念&#xff1a; 作用域链&#xff1a; JavaSc…...

VScode中配置 C/C++ 环境 | IT拯救者

文章目录 0 引言1. 下载编辑器VScode2. 下载编译器MinGW并解压3. 将MinGW添加至环境变量4. 配置VScode插件5. 运行代码6. 调整和优化7. 提示8. 例行格式条款9. 例行格式条款 0 引言 由于VScode毛毛张使用不习惯&#xff0c;因此配置教程记不住&#xff0c;不过毛毛张看到一篇不…...

基于Python实现Midjourney集成到(个人/公司)平台中

目前Midjourney没有对外开放Api&#xff0c;想体验他们的服务只能在discord中进入他们的频道进行体验或者把他们的机器人拉入自己创建的服务器中&#xff1b;而且现在免费的也用不了了&#xff0c;想使用就得订阅。本教程使用midjourney-api这个开源项目&#xff0c;搭建Midjou…...

蓝桥杯刷题--python-6

0最大距离 - 蓝桥云课 (lanqiao.cn) n=int(input()) nums=list(map(int,input().split()))max_=float(-inf) for i in range (n):for j in range (i+1,n):tmp=abs(i-j)+abs(nums[i]-nums[j])max_=max(tmp,max_) print(max_) 0最长递增 - 蓝桥云课 (lanqiao.cn) import os im…...

node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查

文章目录 ⭐前言⭐ 功能设计与实现💖 node后端操作数据库实现增删改查💖 vue3前端实现增删改查⭐ 效果⭐ 总结⭐ 结束⭐结束⭐前言 大家好,我是yma16,本文分享关于 node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查。 技术选型 前端:vite+vue3+antd 后端:…...

【Android】使用Apktool反编译Apk文件

文章目录 1. 下载Apktool1.1 Apktool官网下载1.2 百度网盘下载 2. 安装Apktool3. 使用Apktool3.1 配置Java环境3.2 准备Apk文件3.3 反编译Apk文件3.3.1 解包Apk文件3.3.2 修改Apk文件3.3.3 打包Apk文件3.3.4 签名Apk文件 1. 下载Apktool 要使用Apktool&#xff0c;需要准备好 …...

(04)Hive的相关概念——order by 、sort by、distribute by 、cluster by

Hive中的排序通常涉及到order by 、sort by、distribute by 、cluster by 一、语法 selectcolumn1,column2, ... from table [where 条件] [group by column] [order by column] [cluster by column| [distribute by column] [sort by column] [limit [offset,] rows]; …...

Django模板(二)

标签if 标签在渲染过程中提供使用逻辑的方法,比如:if和for 标签被 {% 和 %} 包围,如下所示: 由于在模板中,没有办法通过代码缩进判断代码块,所以控制标签都需要有结束的标签 if判断标签{% if %} {% endif %} : # athlete_list 不为空 {% if athlete_list %}# 输出 ath…...

勒索病毒最新变种.faust勒索病毒来袭,如何恢复受感染的数据?

引言&#xff1a; 随着我们进入数字化时代&#xff0c;数据的重要性变得愈发显著&#xff0c;而网络安全威胁也日益增加。.faust勒索病毒是其中一种备受恶意分子钟爱的危险工具&#xff0c;它通过加密用户文件并勒索高额赎金来对个人和组织发起攻击。本文将深入探讨.faust勒索…...

python 人脸检测器

import cv2# 加载人脸检测器 关键文件 haarcascade_frontalface_default.xml face_cascade cv2.CascadeClassifier(haarcascade_frontalface_default.xml)# 读取图像 分析图片 ren4.png image cv2.imread(ren4.png) gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 进行人脸…...

机器学习与深度学习

什么是机器学习 机器学习是一门跨学科的学科&#xff0c;它致力于研究和开发让计算机能够模拟人类学习行为的技术和方法。机器学习涉及多个学科的知识&#xff0c;如概率论、统计学、逼近论、凸分析、算法复杂度理论等&#xff0c;这些学科为机器学习提供了理论基础和数学工具…...

算法训练营day27(补),贪心算法1

import "sort" //455. 分发饼干 func findContentChildren(g []int, s []int) int { sort.Ints(g) sort.Ints(s) // g代表胃口数组&#xff0c; s代表饼干数组 count : 0 // 统计数量 //饼干下标 index : len(s) - 1 // 胃口循环 for i : len(g) - 1; i > 0; i--…...

[office] excel2003限定单元格输入值范围教程 #微信#经验分享

excel2003限定单元格输入值范围教程 在Excel中录入数据前都会设置单元格的一些格式&#xff0c;其中会有限定单元格输入值范围的需求&#xff0c;或许有的朋友并不知道单元格该如何限定输入范围&#xff0c;如果不懂的朋友欢迎一起来学习研究。下面是小编带来的关于excel2003限…...

OLED显示红外遥控键码

基本原理 本遥控器的编码是NEC编码&#xff0c;为PWM&#xff08;脉冲宽度调制&#xff09;。 发射红外载波的时间固定&#xff0c;通过改变不发射载波的时间来改变占空比。 逻辑“0”是由0.56ms的38KHZ载波和0.560ms的无载波间隔组成&#xff1b;逻辑“1”是由0.56ms的38KHZ…...

LabVIEW智能温度监控系统

LabVIEW智能温度监控系统 介绍了一个基于LabVIEW的智能温度监控系统&#xff0c;实现对工业环境中温度的实时监控与调控。通过集成传感器技术和LabVIEW软件平台&#xff0c;系统能够自动检测环境温度&#xff0c;及时响应温度变化&#xff0c;并通过图形用户界面(GUI)为用户提…...

专业140+总分420+浙江大学842信号系统与数字电路考研经验电子信息与通信,真题,大纲,参考书。

今年考研已经结束&#xff0c;初试专业课842信号系统与数字电路140&#xff0c;总分420&#xff0c;很幸运实现了自己的目标&#xff0c;被浙大录取&#xff0c;这在高考是想都不敢想的学校&#xff0c;在考研时实现了&#xff0c;所以大家也要有信心&#xff0c;通过自己努力实…...

C语言学习day15:数组强化训练

题目一&#xff1a; 称体重&#xff1a;分别给10个值&#xff0c;来获得最大值 思路&#xff1a; 定义数组&#xff0c;给数组内赋10个值第一个下标的值与第二个下标的值进行比较定义max&#xff0c;将比较得来的较大的值赋值给max一直比较直到比较到最后一个下标&#xff0…...

当openclaw遇见ai:借助快马平台打造能理解内容的智能抓取命令

最近在开发一个叫openclaw的网页抓取工具时&#xff0c;发现单纯抓取网页内容已经不能满足需求了。很多时候我们需要对抓取的内容进行二次处理&#xff0c;比如自动摘要、分类、去噪等。这时候就想到了借助AI来增强工具的能力&#xff0c;正好发现了InsCode(快马)平台这个好帮手…...

Pixel Couplet Gen入门必看:Streamlit Components封装像素春联React组件

Pixel Couplet Gen入门必看&#xff1a;Streamlit Components封装像素春联React组件 1. 项目介绍 Pixel Couplet Gen是一款基于ModelScope大模型驱动的创意春联生成器。与传统春联设计不同&#xff0c;它采用了独特的8-bit像素游戏风格&#xff0c;将中国传统春节元素与复古电…...

Linux七大常见误解与真相解析

1. Linux 神话的起源与现状Linux 作为开源操作系统的代表&#xff0c;自1991年诞生以来就伴随着各种误解和神话。这些误解往往源于早期Linux的使用门槛较高、图形界面不够完善等历史原因。但经过30多年的发展&#xff0c;现代Linux发行版已经发生了翻天覆地的变化。在技术社区中…...

SpringBoot + MongoDB 5分钟快速集成:从0到1实操指南

目录 MongoDB‌ 快速集成 常用API MongoDB‌ MongoDB‌ 是一个基于分布式文件存储的‌文档型数据库‌&#xff0c;属于 NoSQL 数据库中最接近关系型数据库的产品&#xff0c;旨在为 Web 应用提供高性能、高可用和可扩展的数据存储解决方案 。 MongoDB以灵活的无模式文档模型…...

郑州大学生命科学学院生物与医药专业考研复试资料(2025届学姐整理)|电子版

温馨提示&#xff1a;文末有联系方式【权威整理】郑大生科院生物与医药方向考研复试精品资料包 本资料由郑州大学生命科学学院生物与医药专业2022年高分录取学姐牵头整合&#xff0c;汇集2022–2025连续四届成功上岸师兄师姐的实战复试经验与核心资料&#xff0c;内容系统、精准…...

新手避坑指南:用Altium Designer打开嘉立创PCB文件,这3个设置不改布线全乱

Altium Designer导入嘉立创PCB文件的三大核心设置解析 刚接触硬件设计的新手工程师们&#xff0c;当你们第一次尝试用Altium Designer打开从嘉立创EDA导出的PCB文件时&#xff0c;是否遇到过这样的场景&#xff1a;板框莫名其妙错位、网络连接全部丢失、设计规则一片混乱&#…...

3分钟掌握哔哩下载姬:零安装B站视频下载神器使用指南

3分钟掌握哔哩下载姬&#xff1a;零安装B站视频下载神器使用指南 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#x…...

STM32F407的RTC时钟不准?手把手教你用CubeMX配置LSE晶振校准(附源码)

STM32F407的RTC时钟不准&#xff1f;手把手教你用CubeMX配置LSE晶振校准&#xff08;附源码&#xff09; 在嵌入式系统开发中&#xff0c;实时时钟&#xff08;RTC&#xff09;的精度问题常常让开发者头疼。特别是使用STM32F407这类主流单片机时&#xff0c;即使按照官方文档配…...

3个创新特性让开发者解决Linux存储管理难题

3个创新特性让开发者解决Linux存储管理难题 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka 一、诊断存储瓶颈 识别隐形存储占用 当系统提示磁盘空…...

别再买错千元投影! 哈趣Q1Pro藏看越级体验

当下的智能投影市场正经历着深度的“去伪存真”变革&#xff0c;行业洗牌加速的同时&#xff0c;也让消费者的选购变得愈发谨慎。洛图科技数据显示&#xff0c;2025年国内智能投影市场整体销量下滑&#xff0c;其中低端投影成为调整重灾区&#xff0c;0-499元价位段销量同比大跌…...