前端架构: 本地调试脚手架的2种方式

前端开发调试技巧 如图所示,我们只需要在你想再次发送的网络请求上右键,然后选择“Replay XHR”即可,Chrome就会自动为我们再次发送该请求,无需做其他的任务操作。首先同样的在你需要重复发送的请求上右键,然后选择Copy—Copy as fetch,接下来我们只需要打开控制台,然后使用我们最熟悉的Ctrl + V。正对js代码的调试,我们往往需要获取某些变量的值,于是在早期我们往往通过alert方法将变量的值通过弹窗的形式进行打印。Chrome同样也想到了这一点,并且还可以让我们自由的去设计请求参数。 阅读详情

一、 调试简单的脚手架方式


假定脚手架名称是 xxx

1 )方式1

2 )方式2

  • 在未发过版的脚手架项目的根目录中,也就是 xxx/ 下执行 $ npm link 也可以调试本地脚手架
  • 这时候,在当前命令的日志输出中,就会出现两个软链
    • 将当前使用的node目录下的 bin/xxx -> 当前node所使用的node_modules中的 xxx/bin/index.js
      • 注意,这个要确保package.json 中配置的 bin 属性是 bin/index.js
    • 再将当前node所使用的node_modules中的 xxx -> 当前脚手架的项目目录 xxx
    • 注意 -> 表示软链的意思
  • 通过以上两次软链,就可以直接调试当前脚手架项目,做到随时修改,随时使用

二、调试含有分包的脚手架项目

  • 假设有两个平行的项目 x1 和 x2,在x1中需要引入x2包

  • x1的目录结构

    x1
    ├── package.json
    ├── bin
        └── index.js
    
    • 在package.json 中的 main 属性配置为 bin/index.js
  • x2的目录结构

    x2
    ├── package.json
    ├── lib
        └── index.js
    
    • 在这里的 lib/index.js中有一个方法
      module.exports = {
        sum (a, b) {
          return a + b
        }
      }
      
    • 在 package.json 中的配置
      • version 配置为 1.0.0
      • main 配置为 lib/index.js (注意,这个是x1引用x2的关键)
  • 如果想要在 x1 中自动连接 x2,尝试

    • 在x1目录的上一级目录执行 $ npm link x2
    • 这种方式,显然是失败的
    • 因为 x2 包还没有发布到 npm 上面
  • 再次尝试,首先在 x2 中执行 $ npm link

    • 让这个包在全局的 node_modules 目录中创建一个软链到当前开发项目 x2 的目录上
    • 这时候,全局环境下的 node_modules 下就可以找到 x2 了
    • 再次回到 x1 根目录 x1/ 下执行 $ npm link x2
  • 到这个时候,环境基本已准备好了,可以在x1中正常引入x2了,在x1中的 package.json 中

    {
      "dependencies": {
        "x2": "^1.0.0"
      }
    }
    
  • 回到 x1 中,进入 bin/index.js 编写

    #!/usr/bin/env node
    
    const lib = require('x2');
    const { sum } = lib;
    const result = sum(1 + 2)
    
    console.log('result: ', result)
    
    • 验证,在 x1/ 下执行 $ node bin/index.js
      • 输出 result: 3
    • 或者执行 $ x1 来验证
  • 使用这种方式,基于 x1 来调试 x2,调试完成 x2 就可以准备上线了

  • 上线完成后,x1 就可以重新下载 x2 作为依赖了,但是这个时候,可能会出现一些问题

    • 如果直接在 x1/ 下执行 $ npm i 这时候下载的 x2 会被下载到 全局 node_modules 目录下
    • 而项目本地的node_modules 没有写的权限
    • 因为之前存在 link 的行为,而 link 后会在全局 node_modules 下创建软链
    • 这时候,需要执行
      • $ npm unlink x2
        • 注意这里,如果失败的话,尝试: 先执行一次 link x2, 之后再重新 unlink x2
      • $ npm remove -g x2
      • $ npm i x2 -S
  • 注意,以上的方式,不修改项目源码,而是修改本地环境,不会因为后期忘记修改回来或误操作引发bug

  • 修改源码的方式

    • 之前会用 npm 安装本地包,之后 dependencies 中,出现 "bar": "file:foo/bar" 这类的形式
    • 这种,会导致后期上线非常的不方便,而且不注意就会引发问题
  • 这种不修改源码(包括package中的配置)而修改本地环境的方式,可以作为一种最佳实践方式

Halo开发脚手架:一站式本地开发与调试环境实践 在Java Web应用和前端开发领域,高效的本地开发环境是提升生产力的关键。其核心原理在于通过工具链集成,将复杂的服务端启动、数据库配置、构建打包等流程自动化,实现代码修改的实时热重载。这种技术方案的价值在于,它将开发者的心智从环境运维中解放出来,专注于业务逻辑实现,极大缩短了开发反馈循环。典型的应用场景包括CMS系统插件开发、博客主题定制等需要前后端联调的二次开发工作。本文聚焦的`halo-dev/cli`正是这一理念的杰出实践,它通过封装Halo运行环境,为开发者提供了开箱即用的命令行工具,支持主题与插 阅读详情

相关推荐

02-脚手架开发入门(前端架构师入门笔记)

前端架构师入门笔记:02-脚手架开发入门

前端-张冠的博客 1662

前端调试(常用)

前端常用调试方法

SunsetGirl的博客 599

TL431过压保护电路实战:5.5V阈值设计全流程(附MOSFET选型建议)

本文详细介绍了基于TL431和MOSFET构建5.5V阈值过压保护电路的完整设计流程。内容涵盖核心原理、阈值计算、驱动电路设计,并重点针对大电流应用场景,提供了MOSFET选型与散热处理的实战建议,帮助工程师打造可靠高效的电源保护方案。

weixin_28327051的博客 542

前端组件库本地开发调试的自动化流程实现

本地开发调试阶段在 library 侧,进入 library 所在目录启动监听器(nodemon),并附上 watch 变化后重新构建和推送新包的脚本命令(Makefile);在项目侧,注册对本地 library 的依赖并安装(yalc add @package),并启动本地开发服务(webpack-dev-server),负责调试服务和热更新等内容;在发布流程前在 library 侧,关闭监听器并编译打包(npm run build),发布新版本至 npm;

chenjixue的博客 374

解决鸿蒙/荣耀设备GMS应用调试中的“Play保护机制认证”报错

本文详细解析了在鸿蒙或荣耀设备上调试GMS应用时,遇到“Play保护机制认证”报错的根本原因与解决方案。核心在于获取设备的GMS Device ID,并通过Google官方渠道完成临时注册,从而绕过认证限制。文章提供了无需Root和ADB查询两种具体方法,并分享了授权后的故障排查与实战经验,帮助开发者高效解决问题。

weixin_29288313的博客 301

【01】VisionMaster入门到精通——VisionMaster V4.0.0 试用版安装教程(安装试用补丁与试用授权)

本文详细介绍了海康VisionMaster 4.0.0试用版的安装步骤:首先从官网下载基础安装包、软加密试用版和示例程序(可选);安装时需按顺序完成主程序安装(选择软加密)、试用补丁安装和30天试用授权安装;最后提供了两种启动方式。文章还列出了试用版的7项功能限制,包括最多支持2个流程、2个全局相机等,并特别提醒试用版不维护、不提供补丁,建议用户转为正式版本。安装过程中若出现蓝屏需重启覆盖安装,授权失败时可参考指定解决方案。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 8968

学习脚手架第三节:脚手架的分包和多模块调试

本篇讲述了脚手架单模块和多模块的调试,如何在线上环境和本地调试环境中来回切换,本地调试可以方便更好的开发。

赛里木湖畔的博客 1004

matlab 求解多项式的根 四种方法

matlab 求解多项式的根 四种方法 方法一 %多项式求根函数roots p=[1,-3,1];%建立多项式系数向量p x=roots(p)%求多项式的根 x=-5:0.1:5;%步长为0.1 y1=x.*x-3*x+1;%构建一个函数 y2=zeros(size(x));%产生一个与x同大小的零向量 plot(x,y1,x,y2); 方法二 %利用函数fzero f=@(x)x*x-3*x+1; x1=fzero(f,0.5) x2=fzero(f,2.5) 方法三 %利用f

weixin_57038822的博客 1万+

前端本地服务实机调试

前端本地服务实机调试

Doug_的博客 785

SpringBoot Actuator未授权访问漏洞实战:从发现到利用

本文深入剖析了SpringBoot Actuator未授权访问漏洞的成因、危害与利用手法。文章详细演示了如何发现暴露的端点,并通过实战案例复现了从敏感信息泄露到利用反序列化漏洞实现远程代码执行(RCE)的全过程,为开发与运维人员提供了从漏洞发现到修复加固的完整安全指南。

weixin_29231221的博客 260

【半桥LLC】半桥LLC谐振开环闭环软启动DCDC变换器的设计与仿真

本文详细分析了半桥LLC谐振DC-DC变换器的开环与闭环控制设计原理,重点探讨了软启动功能的实现。通过仿真验证,展示了开环与闭环情况下的电压输出差异以及系统效率的提升。该研究为提高DC-DC变换器性能提供了参考。

2401_84610415的博客 2598

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

命令行操作方式的效率很高,非常适合执行前端任务最常用的场景,就是利用脚手架实现前端研发提效如 npm i 解决依赖下载和安装问题今日之前端发展,和脚手架流行有莫大关系前端工程化: 项目创建、项目启动,项目构建流程。

Wang的专栏 1107

Go语言Gin框架项目:从零到一搭建一个用户管理系统

本文介绍了一个基于Go语言Gin框架开发的用户管理系统。系统采用MySQL数据库存储数据,使用Bootstrap 5构建现代化UI界面,实现了完整的CRUD功能。主要特点包括:RESTful API设计、前后端双重表单验证、实时搜索功能、SQL防注入措施以及响应式布局。项目结构清晰,包含数据库配置、用户模型、处理器和前端模板等模块。系统提供用户列表展示、新增/编辑表单、删除确认等功能,通过参数化查询确保安全性,并支持按姓名或邮箱搜索用户。

数据知道的博客 3995

前端架构: 脚手架之多package项目管理和架构

通常来说,当一个项目变大了以后,我们就要对这个项目进行拆分,在前端当中,对于项目进行拆分的方式,通常把它称之为javascript包管理,需要使用一个工具叫做 npm (Node Package Management),它是使用nodeJS来对包进行一个管理,用了这个包管理以后,项目就可以以大化小,把一个复杂的项目拆分成若干个小的项目,如何把一个大的项目进行一个拆分

Wang的专栏 1865

STM32G0/G4电机控制中三角函数与浮点运算优化实战

三角函数(sin/cos)和浮点运算是电机矢量控制(FOC)的核心基础,直接影响Clark/Park变换、SVPWM及观测器的实时性与精度。在资源受限的MCU上,标准math.h库因无硬件FPU支持而引发严重时序抖动,导致电流环延迟、转矩脉动增大甚至系统复位。通过硬件加速(如STM32G4的CORDIC协处理器)或定制化定点算法(如STM32G0的查表+线性插值),可将sin/cos计算从数十微秒压缩至1–3 μs量级,提升30倍以上效率。该方案广泛适用于BLDC/PMSM驱动、伺服控制及高动态响应嵌入式运

weixin_35751412的博客 111

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

前端应用开发架构图谱

个人整理的前端架构图谱,之后会根据这个图谱不断的完善内容。希望这个图谱可以对开发同学的知识脉络有个梳理的作用。 项目创建 脚手架 IDE脚手架 IDE或社区提供的脚手架 业务型脚手架 根据业务特点通过Node写的工具,用于降低高频手写操作 通用组件 Element UI Echart IView 项目分层组件 错误数据采集 业务代码与运行时框架隔离 安全性兼容...

SAHADEV的专栏 9230

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

前端脚手架的概要设计

随着前端工程化的理念不断深入,脚手架的出现就是为减少重复性工作而引入的命令行工具,众所周知, 新建项目是很繁琐的一项工作, 要考虑项目目录结构,基础库的配置, 各种规范等等. 在此过程中如何摆脱ctrl + c, ctrl + v,而通过脚手架从零到一搭建项目的方式变得更加有必要.另外,对于很多系统,他们的页面相似度非常高,所以就可以基于一套模板来搭建,虽然是不同的人开发,但用脚手架来搭建,相同的项目结构与代码书写规范,是很利于项目的后期维护的;

高灯GFE 651

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

理解微前端 - 从部署一套自己的前端开发环境(脚手架)开始

很久以前的前端,没有太多工具化工程化思想,一堆代码塞进去完事儿。如今前端已经很卷,卷到了一个开发环境都够你折腾一宿。那么我们抛开类似nextjs、create-react-app这类的工具或框架,我们该如何从零部署一个属于自己的开发环境呢?这篇文章将讲述如何配置一个基础的脚手架,支持React、TypeScrit和单元测试等必要的功能。在这个基础上,大家能够很方便去个性化脚手架。

changcheng552200的博客 1132

前端基础建设与架构26 如何设计一个“万能”项目脚手架?

这一讲我们从开发一个命令行入手,分析了实现一个脚手架的方方面面。实现一个企业级脚手架需要不断打磨和优化,不断增强用户体验和可操作性,比如处理边界情况、终端提示等。更重要的是,对构建逻辑的抽象和封装,根据业务需求,不断扩展命令和模板。本讲内容总结如下:![在这里插入图片描述](https://img-blog.csdnimg.cn/896d8dc6701145f19edc6f2eaa0a7aac.png#pic_center)从 0 到 1 简单,但是从 1 开始出发,就需要开发者不断思考和总结。

fegus的博客 841

前端架构: 脚手架框架之yargs高级应用教程

2.2 在xyzcli中配置, 这里接上文走一个全量的代码。3 )recommendCommands 应用案例。故意给一个没有的命令,查看输出结果。2.3 参考 lerna 工程示例。2 )command 应用案例。参考 lerna 中的应用。4 )fail 应用案例。

Wang的专栏 1547

无界微前端本地开发环境搭建:多应用联调的最佳实践

微前端架构正在成为现代前端开发的重要趋势,而**无界微前端框架**作为一款极致的微前端解决方案,为开发者提供了简单高效的本地开发体验。本文将通过实战指南,帮助你快速搭建无界微前端的本地开发环境,实现多个前端应用的无缝联调 🚀 ## 为什么选择无界微前端? 在复杂的业务场景中,我们往往需要同时开发和调试多个独立的前端应用。传统的开发方式需要频繁切换不同项目的开发服务器,既低效又容易出错。无界微

gitblog_00997的博客 385

《前端技术架构与工程》之工程思维与服务支撑笔记

《前端技术架构与工程》之工程思维与服务支撑 前言: 《前端技术架构与工程》这本书真的越看越有味。目前写了部分这本书的笔记,共分为三部分做笔记,已写了三篇如下。 《前端技术架构与工程》初次笔记 《前端技术架构与工程》之编程语言 《前端技术架构与工程》之性能笔记 今天准备写工程服务体系(开发、构建、测试、部署、持续化、监控与统计) 初次笔记让我从架构师的角度认识前端技术栈;编程语言笔记让我对前端三大件有了新的理解;性能笔记让我对网络知识和性能优化有了一个初步概念,对于进一步提高有了方向。 今天写的是工程服务体系

wsdchong的博客 1738

04-脚手架框架搭建(二)(前端架构师入门笔记)

04-脚手架框架搭建(二)(前端架构师入门笔记)

前端-张冠的博客 1299

修改npm bin location_前端脚手架CLI生成模版命令工具(包括,npm包的发布,脚手架的搭建,注意事项,优化等) - annaRong...

写在前面这是停更以后,续更的一篇文章。为什么好长时间都没有更新,因为去其他平台更新了,包括掘金,思否,简书等。在那些地方感觉没有归属感,有的平台原创审核很麻烦,简书号称可以获得打赏,可是码了几十万字的博主,几百块,也没有什么意义。而且为了能吸粉,可能得违背自己的意愿写一些水文,或者不利于自己成长的文章。所以,我还是回到这里,博客园——开发者的网上家园。尽管这里没有外面那些平台那么fashion,...

weixin_39637386的博客 227

node搭建一个简单的脚手架

新建一个文件夹,文件夹下面创建bin/cli.js使用myclil执行我们的第一个自定义命令可以看到控制台打印了cli.js中的log,说明我们自定义的全局命令生效了提醒在执行mycli时有可能会报错这时我们把集成终端换成bash就可以执行了。cmd和powershall都不行例如:我们需要通过mycli init xxx指令来创建一个项目,这就需要自定义init指令。cli.js。

jieyucx的博客 2860

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

对应到软件工程领域,脚手架可以解释为帮助开发人员在开发过程中使用的开发工具、开发框架,使用脚手架你无须从头开始搭建或者编写底层软件。下面的“脚手架”定义来自Stack Overflow,更加偏向于应用服务框架使用的一种编程思想或者说编程范式(供参考)。 脚手架:是一种元编程的方法,程序员编写一份规格说明书(Specification),用来描述怎样去使用数据库,然后由编译器脚手架根据这份规格说明书生成相应的代码,进行增、删、改、查等数据库的操作,在脚手架上更高效地建造出强大的应用。 为什么需要脚手架 为什么

m0_65322636的博客 647
上一篇: 前端架构: 简易版脚手架开发
下一篇: React18原理: 时间分片技术选择
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、付费专栏及课程。

余额充值