前端架构: 脚手架在前端研发流程中的意义

从0搭建前端脚手架详解(小白也可以搭建) 先来看一眼实现的效果。从图上来看这个脚手架的功能非常的简单只有一个创建的命令,其他都是帮助和显示版本号的。也就是上图这句,创建一个新项目,只需要输入create 项目名便可使用,在创建时执行了一系列的操作,这一块的思路很简单,就是将git仓库中的项目模板拷贝下来再依据使用者的不同操作对复制下来的模板的部分文件进行修改就可以了,大致思路便介绍到这里,接下来我们便来详细的讲讲如何实现,以及会用到的依赖。脚手架就是在启动的时候询问一些简单的问题,并且通过用户回答的结果去渲染对应的模板文件,我们接下来的流程亦是如此 阅读详情

关于脚手架

  • 脚手架又被成为 CLI (command-line interface)
  • 基于文本界面,通过中断输入命令执行
  • 常见的脚手架:npm, webpack-cli, vue-cli
  • 拿 npm 这个脚手架来说
    • 在终端当中输入 npm 命令, 系统就会通过文本方式返回 npm 的使用方法
    • 它这种通过命令行执行的操作方式效率很高,所以非常适合用来执行前端任务
    • 在前端开发的过程中,常常会把脚手架应用在前端研发提效当中
    • 举一个的例子, $ npm install, 它就解决了依赖下载和安装问题
      • 如果不使用这条命令,就不得不从package阶层当中,把所有的依赖都读取一遍
      • 然后到npm的网站上,把这些依赖以及依赖的依赖全部下载下来
      • 下载后,要进行解压,并把这些依赖都拷贝到 node_modules 目录下
      • 还要把这些依赖中相关脚手架拷贝到 .bin 目录下
      • 这样才能完成整个 npm install 的一个过程
    • 如果是这样,通过手动的方式来完成,它的复杂度和工作上是不可想象的

对脚手架的一些深入了解

  • 脚手架有一些高级特性
    • 比如,在命令行中一些特殊显示,如像颜色字体的显示样式
    • 还有如何去做命令行的交互
  • 脚手架的最佳实践,如何实践
    • 通过开源源码库的阅读,可以研究并实现各种前端的高级特性, 设计模式和算法
    • 各类设计模式在实际的开发过程中到底是怎么应用的

开发脚手架必备


1 ) 概述

  • 因为是前端开发,最适合的底层环境就是 nodejs
    • 需要掌握 node 开发,根据脚手架开发需求,需要了解 nodejs
    • node 中内置库, 常用库, 各种命令行
    • 如何处理 键盘输入,键盘监听,文本颜色,命令行交互等
  • 同时,要开发一款脚手架离不开 shell, bash, cli 等操作系统的基础知识
  • 这些是掌握脚手架开发离不开的底层原理

2 ) nodejs

  • 为什么要使用 nodejs 来开发脚手架,开发脚手架有很多语言都能够实现
    • 比如python, java, ruby …
  • 2.1 开发方面的支持
  • nodejs 支持 javascript 和 typeascript 这两种非常强大的开发语言
  • 正因为有这两种语言的知持,使我们的脚手架开发过程会变得非常的舒适
  • nodejs 具备一个非常强大的生态,这个生态能够支持我们快速的去开发一个脚手架
  • nodejs 它提供了一个非常强大的内置库,而且其更新的速度非常的快,稳定度也非常的高
  • 内置库当中提供了很多,比如像文件管理fs, 路径查询path, 操作系统os, 还有包括对进程管理的child_process等等
  • 非常多的一个内置库的知识,能够让我们对一些基本的功能,操作系统基本功能的应用有一个支持
  • nodejs 还具备非常强大的三方库, 这个三方库有 npm 来进行托管
  • 已经有超过一千一百万的开发者在使用 npm,
  • 这些三方库可以帮助我们快速的去搭建起来这个脚手架
  • 比如我们最常见的脚手架开发框架 commander 和 yargs,下载量都是非常惊人的
  • 还有包括我们对内置库中的一些扩展 fs-extra, rxjs做响应式等等这些库数量巨大的一个三方库
  • 基本上可以说,开发过程中能够想到需要用什么样的内容,它就能够提供什么样的能力
  • 2.2 nodejs 还提供了一个非常强大的 npm 和 yarn 等包管理系统
    • 这个系统可以帮助我们快速完成整个脚手架,从开发发布到更新整个流程
    • 我们创建一个脚手架的时候,可以通过 $ npm init 快速的完成项目的一个创建
    • 开发过程中可以借助 npm scripts 实现开发过程的调试
    • 发布过程通过 $ npm publish 可以快速的推到 npm 的远程系统
    • 最后,通过 $ npm install 把它安装到本地项目,或者说进行全局安装,在操作系统中进行使用
    • 整个过程可以说是非常流畅的, 如果没有npm的话,整个过程都需要我们自己实现这个过程就比较痛苦了
    • npm 其实在这个过程中帮我们做了非常多的事情,包括全局的一些自定义链接的软链接的生成等等
    • 所以 nodejs 可以说是我们开发脚手架非常好的一个帮手

简单总结

  • js 和 Ts 强大的语法特性
  • nodejs 强大生态支持cli快速开发
    • 内置库:fs, path, os, child_process, …
    • 三方库:commander, yargs, fs-extra, rxjs, …
  • nodejs 强大的 npm 和 yarn 等包管理系统,可快速完成cli发布和更新
    • 创建: $ npm init
    • 开发: npm scripts
    • 发布: $ npm publish
    • 应用: $ npm install

3 )如何快速落地脚手架的开发

  • 找到脚手架的一个应用场景,树立应用脚手架的信心
  • 深入的去了解操作系统与脚手架相关的一些基础知识
  • 这其中就包含了 shell, bash, cli 这三者其实是一个递进关系
  • 研究脚手架开发的一个底层原理,就脚手架,它到底是怎么实现的?怎么运行起来的?
    • 今天用了nodejs, 明天就可以用 python 和 ruby
    • 都是一样的道理
  • 确定使用 nodejs 来开发脚手架
  • 就需要根据脚手架需求去了解nodejs的内置库,常用的三方库以及脚手架框架
  • 除此之外,还要掌握各种命令行特有的能力的开发方法
    • 比如说如何进行键盘的输入
    • 如何监听键盘输入过程中各种行为
    • 如何改变控制台当中的文本颜色
    • 如何进行命令行交互等等
    • 这些都是在命令行开发,也就是脚手架当中特有的一些开发方法
  • 最后,基于这些基础知识和nodejs的开发方法去开发一系列的提效工具,解决实际开发过程中的一些具体的问题

4 ) bash 和 shell

  • shell 是计算机提供给用户和其他程序进行交互的接口

  • shell 是一个命令解释器,当你输入命令后,由 shell 进行解释后交给操作系统内核 (OS Kernel) 进行处理

    • 比如一个花生,花生壳就是shell, 花生粒就是 Kernel
    • 图形操作系统属于 shell, 属于 GUI Shell
    • 花生壳就是壳应用,可以是 GUI的,可以是命令行的
    • 比如 mac 的 Finder
  • bash 是 shell 的一种类型,可查看系统上有几种类型

    cat /etc/shells
    
    /bin/bash
    /bin/csh
    /bin/dash
    /bin/ksh
    /bin/tcsh
    /bin/zsh
    
  • bash 就是一种程序,用于人机交互,它不是完成特定任务的,如计算器,文件管理器等

  • 通过 bash shell 来执行程序,比如 ls, 和 cd 都是由bash来实现

  • bash 使用了一种纯文本的控制台进行控制,主要交互方式是通过键盘输入文本,文字反馈来实现人机交互

  • gui如火如荼的今天,bash并没有过时,在bash 前端开发领域越来越广泛

  • bash的最大优势是简单易用,效果不如 GUI,但一旦熟练后期操作效率远远大于 GUI

5 ) CLI

  • command line interface
  • 基于文本界面,用于运行程序
  • 可调用操作系统的接口
  • 接受键盘输入, 基于Unix系统会同时提供cli和gui

6 ) 架构层次图

  • sortware 这是最上层

    • cli software
    • gui software
  • shell 这是中层

    • cli:bash, csh, zsh, dash
    • gui
  • os kernel 这是最底层,系统内核

  • 最底层是我们操作系统的内核,就是我们的操作系统

  • 我们通过 shell 和 操作系统内核来进行交互

  • shell 有两种形式,一种形式叫做 CLI, 一种叫做 GUI

    • CLI 表示命令行, GUI表示图形界面
    • 在 CLI 中有很多实现,比如 bash, csh, zsh, dash
  • 我们自己开发的这个程序软件 Software分为两种: CLI Software, GUI Software

    • CLI Software 主要运行在 CLI 环境当中,在终端中它没办法直接启动,必须要通过一个shell程序去启动
    • 比如说这使用bash 或 csh 运行它
    • 而 GUI 的这个软件,其实也可以通过 CLI 来把它打开,也可以在图形操作系统中, 比如在Windows里面通过.exe文件,把它打开
  • 以上就是整个脚手架的一个架构

脚手架对前端工程的意义

  • 今天前端可以发展的这么好,效率那么高,和脚手架的流行有莫大的关系
  • 前端工程化流程,包括从项目创建、启动、构建流程等等都需要具备脚手架知识
  • 脚手架是解决复杂前端工程问题的必备知识
  • 所以,脚手架可以助力前端研发全流程提效

总结

  • 命令行操作方式的效率很高,非常适合执行前端任务
  • 最常用的场景,就是利用脚手架实现前端研发提效
  • 如 npm i 解决依赖下载和安装问题
  • 今日之前端发展,和脚手架流行有莫大关系
  • 前端工程化: 项目创建、项目启动,项目构建流程
企业级前端脚手架架构设计与实战指南 本文深入探讨企业级前端脚手架的架构设计与实战应用,通过自动化、标准化和数据化三大核心价值提升开发效率。详细解析分层架构设计(内核层、功能层、适配层)及性能优化技巧,涵盖依赖安装加速、模板生成优化等实用方案,并分享团队协作规范与常见问题解决方案,助力开发者构建高效前端开发工具链。 阅读详情

相关推荐

从零构建企业级前端脚手架:原理、实战与效能革命

本文深入探讨企业级前端脚手架的构建原理与实战应用,涵盖分层架构设计、多模板管理、Git自动化及私有NPM集成等核心功能。通过效能优化案例展示如何将项目搭建时间从4小时缩短至15分钟,显著提升团队开发效率与代码一致性,是前端工程化的重要实践指南。

weixin_29279101的博客 342

从零搭建开发脚手架 自定义打包构建研发输出产物

在打包项目时,通常只需要生成一个可执行的jar文件。然而,有时候需要将启动脚本或外部配置文件附加到该jar文件中,这时候就可以使用。此工具可以根据自己的需求将所需的文件打包到指定的目录中。配置assembly.xml文件路径。

laker的博客 824

Halcon形状模板匹配实战:inspect_shape_model参数优化指南

本文深入解析Halcon形状模板匹配中inspect_shape_model参数的优化技巧,涵盖NumLevels和Contrast参数的实战应用。通过具体案例展示如何平衡匹配速度与精度,帮助开发者高效调试形状模型,提升工业视觉检测的准确性和效率。

weixin_30342209的博客 618

前端从零搭建自己的脚手架

Webpack脚手架是一个工具,用于快速搭建基于Webpack的项目结构。它通常包括了一些预设的配置和插件,以便用户可以快速开始一个新的项目,而不必从头开始配置Webpack。这些脚手架可以帮助开发人员自动处理诸如打包、代码转译、资源管理等繁琐的任务,从而让他们更专注于项目的逻辑实现。

mengxiaodi的博客 5269

Ubuntu 24.04 LTS与Windows 11远程桌面连接:从xrdp闪退到xfce4桌面环境的实战排障

本文详细解决了在Ubuntu 24.04 LTS上使用xrdp连接Windows 11远程桌面时遇到的登录后闪退问题。通过分析日志,定位到默认GNOME桌面环境与xrdp的兼容性冲突,并提供了将桌面环境更换为轻量且兼容性更佳的XFCE4的完整实战解决方案,包括安装、关键配置修改及服务重启步骤,确保远程连接稳定可靠。

mango的博客 807

SAPABAP金色传说:关于导入和导出Excel时反复弹窗提示 SAP GUI安全性问题的解决方法

文章目录前言一、提示的到底是什么?二、关闭SAP GUI安全提示的步骤1.设置位置 前言 如果你在SAP中,经常需要将数据导出Excel,或者使用Excel进行批导数据,那么你对下面这个频繁出现的弹窗提示一定不陌生! 系统试图创建文件 C:\Users\15265\Desktop\EXPORT.XLSX 于目录 C:\Users\15265\Desktop\ 是否要授权修改父目录及其所有子目录? 不管你是不是选的记住我的决定,它必出!就很烦!那如何处理才能关闭呢? 提示:以下是本篇文章正文内容,看完快

Easystudios博客 1万+

前端架构 —— 脚手架架构设计和框架搭建

脚手架的核心目的:提升前端研发效能

weixin_44045283的博客 1819

【K8S系列】Kubernetes 中 Service 的流量不均匀问题【已解决】

在 Kubernetes 中,Service 是一种抽象,用于定义一组 Pod 的访问策略。当某些 Pod 接收的流量过多,而其他 Pod 的流量较少时,可能会导致负载不均衡。这种情况不仅影响性能,还可能导致某些 Pod 过载,影响应用的可用性。本文将详细分析此问题的原因及其解决方案。

颜淡慕潇 8740

什么是软件开发脚手架,为什么需要脚手架,常用的脚手架有哪些

为什么需要脚手架 为什么软件开发需要脚手架呢?我们通过软件开发的一些基本原则看一下脚手架对软件工程的重要作用。 ● 复用原则(Reuse Principle):现在我们推崇的是极致化的编程体验,缩短的开发时间、大量的开发任务、支持需求的变更、高频率的应用服务交付,这些都给软件开发人员带来了前所未有的压力。其中,软件复用技术被公认为解决这些问题的行之有效的方法。从计算机软件编程的发展历史来看,从面向过程的编程语言到面向对象的高级编程语言的广泛使用,是软件复用技术进步的体现。从对象的复用到更大的组件复用,再到如

tt8889的博客 905

基于MATLAB实现语音信号MFCC特征提取(附完整代码)

你有没有想过你的智能手机是如何理解语音指令的?或者 Alexa 和 Siri 等语音助手如何处理您的命令?这种卓越能力背后的机制在很大程度上归功于一种称为 Mel 频率倒谱系数 (MFCC) 的方法。语音识别技术允许机器解释人类语音,将口语转换为计算机可以操纵的格式。这项技术对于开发交互式和响应式 AI 至关重要,例如声控助手、自动化客户服务系统和实时翻译服务。MFCC 代表 Mel 频率倒谱系数。这是用于自动语音和说话人识别的功能。

baidu_34971492的博客 1315

leetcode134 加油站

题目如下 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。 说明: 如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同。 输...

ayang818 's blog 234

前端架构 —— 前端架构研发

项目代码——抽象——项目模板——存储到——数据库创建新项目——使用脚手架生成——脚手架从数据库读取项目代码抽象为组件——把组件存到数据库,组件源码存到NPM新项目——使用脚手架——读取到组件——使用组件初阶:使用第三方平台,百度、友盟、阿里云ARMS等中阶:自研前端监控库,缺乏完整的监控体系高阶:自研前端监控平台,具备完整的监控体系测试同学:功能测试,性能测试,测试用例前端同学:单元测试,常用于组件库、API等(Jest、Mocha)

weixin_44045283的博客 1284

YOLOv11 结合 BiFormer 注意力:打造多场景高精度检测模型实战教程

注册BiFormer模块(若代码未自动注册)# 加载自定义配置的YOLOv11模型。

know_F0727的博客 253

前端工程化-打造企业通用脚手架

本文字数:10930字预计阅读时间:28分钟前端工程化-打造企业通用脚手架目录前言脚手架是什么?脚手架能力为什么不用自动化构建工具脚手架核心价值使用脚手架@focus/cli架构依赖项概...

SOHU_TECH的博客 764

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

企业级前端脚手架:原理与实战指南

本文深入解析企业级前端脚手架的核心原理与实现方案。从初始化流程(命令解析、用户交互、模板拉取、项目生成)到配置解析机制(多源配置整合与优先级处理),再到依赖管理(分类安装策略与优化)和构建打包链路(Webpack/Vite/Rollup等工具选型),系统阐述了脚手架的技术架构。通过对比VueCLI、Vite和TaroCLI三大主流方案的实现差异,揭示了企业级脚手架在标准化开发流程、提升工程效率方面的核心价值。文章兼具理论深度与实践指导性,适合中高级前端开发者进阶学习。

警警的博客 1303

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

脚手架架构设计和框架搭建 - 开发入门

脚手架架构设计和框架搭建 - 开发入门

chengbo_eva的博客 850

前端脚手架入门学习笔记(一)

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

风梧的博客 454

如何打造一个企业通用的前端脚手架?

本文字数:10930字预计阅读时间:28分钟前端工程化-打造企业通用脚手架目录前言脚手架是什么?脚手架能力为什么不用自动化构建工具脚手架核心价值使用脚手架@focus/cli架构依赖项概览...

前端达人 473

快手主站前端工程化探索:Gundam 脚手架在新春除夕项目中的实践与展望

Gundam 是快手主站前端工程化脚手架,目标在于建设统一标准的工程化解决方案,提升研发效率,保障稳定性底线。本文会结合Gundam在新春除夕项目中的落地实践来聊一聊在工程化领域中碰到的问题和思考,以及未来的发展方向。

kuaishoutech的博客 1300

脚手架入门:必要性、核心功能与执行原理

从前端研发视角梳理开发脚手架的必要性(自动化、标准化、数据化),演示 init / publish 核心流程,并从 vue create 命令拆解脚手架的组成与执行原理:环境变量查找命令、软链接指向全局 node_modules 中的 JS 文件、由 node 执行。

guslegend的博客 220

如何去搞前端基建

前端基建

大灰狼的小绵羊哥哥的博客 972

阿里大佬浅谈大型项目前端架构设计

1、综合 我在2年之前,写过一篇中小型项目的前端架构浅谈。 随着能力的上升,以及在阿里巴巴工作的经验,是时候写一篇大型项目的前端架构分析了。 本篇文章不会更多侧重于具体技术实现,而是尝试从更高角度出发,分析为什么要这么做,这些设计能解决什么问题,成本和收益如何。 由于作者能力有限,可能会有所缺漏或者部分错误,欢迎读者指出。 1.1、适用场景: 本篇文章,适用于单个/多个大型项目、拥有超过10个以上...

张miro 3984

前端【全链路体系优化介绍与落地实践】

前端工程化的开发思维与解决方案应用到项目中,解决非业务需求,为业务降本增效.是研发团队的技术基础设施建设,是一个团队通用的技术能力沉淀.少了1kb左右,在源码中也找不到console.log。(4). 打包出来chunck可以放到cdn上.随着需求迭代的步伐加速,可能会产生以下问题。如果发现两个大小不一样,表示Gzip压缩过。

wanmeijuhao的博客 1639
上一篇: React16源码: React中ReactFiberScheduler的expirationTime及nextExpirationTimeToWorkOn的源码实现
下一篇: 前端架构: 从vue-cli探究脚手架原理
Wang's Blog
博客等级 码龄12年 7434粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值