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

脚手架封装

为什么要做脚手架统一项目规范用脚手架强制统一结构、规范、依赖、代码风格提升开发效率节省大量时间。新建项目不用手动配路由、请求封装、环境变量、Eslint、Prettier降低新员工上手成本新人不用问 “怎么建项目”“目录放哪”企业脚手架会自带权限控制请求封装埋点、监控安全策略、代码检查公司内部组件库 / 工具库避免每个人自己写导致漏洞、不规范、不安全一、脚手架基础搭建步骤1初始化项目新建文件夹 my-cli执行 npm init -y项目结构my-cli2/ # 脚手架根目录唯一要发布NPM的目录 ├── index.js # 脚手架入口文件 ├── package.json # 脚手架配置文件 └── template/ # 你的完整React项目直接放这里不发布 ├── public/ ├── src/ └── package.json2安装依赖兼容版本命令行交互工具 npm install inquirer 命令行颜色美化 npm install chalk4.1.2 # 高版本只支持ES模块用4.x稳定版 下载远程git模板 npm install download-git-repo 命令行加载动画 npm install ora 文件操作 npm install fs-extra三、完整脚手架代码创建入口文件index.js脚手架核心#!/usr/bin/env node const fs require(fs-extra); const path require(path); const inquirer require(inquirer); const chalk require(chalk); async function init() { const { name } await inquirer.prompt([ { type: input, name: name, message: 请输入项目名称, default: my-react-app } ]); // 目标路径 const targetDir path.resolve(process.cwd(), name); // 模板路径指向本地 template 文件夹 const templateDir path.join(__dirname, template); // 复制模板 try { await fs.copy(templateDir, targetDir); console.log(chalk.green(✅ 成功创建项目${name})); console.log(chalk.blue( 进入项目cd ${name})); console.log(chalk.blue( 安装依赖npm install)); console.log(chalk.blue( 启动项目npm run start)); } catch (err) { console.log(chalk.red(❌ 创建失败, err.message)); } } init();四、配置脚手架命令打开package.json添加{ name: yuemode-cli, version: 1.0.0, description: 我的React项目脚手架, main: index.js, bin: { yuemode-cli: ./index.js }, scripts: { test: echo \Error: no test specified\ exit 1 }, keywords: [ cli, react, template ], author: , license: ISC, dependencies: { chalk: ^4.1.2, fs-extra: ^11.3.4, inquirer: ^8.2.7, ora: ^5.4.1 } }五、本地测试脚手架把脚手架链接到全局只需执行一次npm link任意目录执行my-cli遇到问题核心问题输入命令自动打开 VSCode应该不常见的问题问题原因Windows 系统中 .js 文件默认打开方式被我修改为 VSCodenpm link 生成的命令指向 index.js执行时被系统用 VSCode 打开并非脚手架代码错误是系统文件关联机制导致最简单解决方案推荐不用改系统直接用 node 运行不使用全局命令在目标项目目录执行node …/my-cli/index.js永久解决方案修改 .js 默认打开方式打开 设置 → 应用 → 默认应用 → 按文件类型选默认应用找到 .js 文件类型将默认应用从 VSCode 改为 node.exe路径通常C:\Program Files\nodejs\node.exe命令不生效排查npm link 必须在脚手架根目录执行提示命令不存在重新执行 npm link三、完整使用流程实训 / 考试标准步骤搭建好 my-cli 脚手架项目在 my-cli 目录执行 npm link新建测试目录 test进入 test 目录执行my-cli(取决于bin里面的key)正常出现脚手架交互完成项目创建六、常用命令速查链接全局命令npm link 卸载全局命令npm rm -g my-cli 直接运行脚手架最稳node ../my-cli/index.js 查找node 位置where node七、如何上传到npm1,确保需要上传的内容与index和package同一级2拥有npm账号简单3开启2fa认证(双因素认证)4上传具体命令npm login //登录 npm publish //上传403报错就是没开启2fa认证npm里面点击头像-Account-Two-Factor Authentication点击enable即可开启上传时需要登录一下点击enter即可当看见 yuemode-cli1.0.0即上传成功八、怎么用全局安装必须先安装一次npm install -g yuemode-cli直接运行脚手架yuemode-cli3.按照要求输入名称等就可以获得项目了

相关文章:

脚手架封装

为什么要做脚手架? 统一项目规范,用脚手架强制统一:结构、规范、依赖、代码风格 提升开发效率,节省大量时间。新建项目不用手动配:路由、请求封装、环境变量、Eslint、Prettier 降低新员工上手成本,新人不用…...

新手零失败指南:基于快马ai详解android studio安装配置与第一个app运行

新手零失败指南:基于快马AI详解Android Studio安装配置与第一个APP运行 作为一个刚接触安卓开发的新手,第一次安装Android Studio时确实容易被各种概念和步骤搞晕。最近我在InsCode(快马)平台上发现他们的AI指导特别适合新手,能一步步拆解复…...

3分钟掌握yt-dlp-gui:免费开源的视频下载终极解决方案

3分钟掌握yt-dlp-gui:免费开源的视频下载终极解决方案 【免费下载链接】yt-dlp-gui Windows GUI for yt-dlp 项目地址: https://gitcode.com/gh_mirrors/yt/yt-dlp-gui 在数字内容日益丰富的今天,如何高效地下载和保存网络视频成为了许多用户的迫…...

实战即用:通过快马ai快速构建配置完备的flask web api项目

最近在做一个前后端分离的小项目,需要快速搭建一个轻量级的Web API服务。之前每次新建项目都要手动配置Python环境、安装依赖,特别容易出错。这次尝试用InsCode(快马)平台来生成配置好的Flask项目,整个过程意外地顺畅。 环境配置一步到位 传统…...

新手如何践行qoderwork?快马平台带你从零生成首个网页项目

作为一个刚接触编程的新手,想要快速上手做出一个能实际运行的网页项目,往往会遇到各种困难。最近我在学习网页开发时,发现了一个特别适合新手入门的方法——通过InsCode(快马)平台来实践qoderwork理念,今天就分享一下我的经验。 …...

3步实现微信聊天记录永久保存与智能分析的完整方案

3步实现微信聊天记录永久保存与智能分析的完整方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg 在数…...

在快马平台快速构建hevc视频转码原型:三步生成可运行demo

今天想和大家分享一个在InsCode(快马)平台上快速搭建HEVC视频转码原型的经历。作为一个经常需要处理视频内容的开发者,我发现这个平台特别适合用来做技术验证和原型开发。 为什么选择HEVC视频扩展 HEVC(高效视频编码)相比传统的H.264能节省…...

突破QQ音乐格式壁垒:qmcdump开源工具全场景应用指南

突破QQ音乐格式壁垒:qmcdump开源工具全场景应用指南 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 当你兴冲…...

品牌想被AI推荐,必须满足这3个条件

我们团队去年给一家智能家居客户做GEO交付,第一个月内容铺了三千篇,数据后台一打开,引用率不到1.7%。客户电话直接打过来问:“你们是不是把同一篇文章,用AI换了个说法发了三千遍?”这就是很多营销服务公司踩…...

实测对比:用MMDeploy把MMDetection模型转成TensorRT后,FP16/INT8到底能快多少?

MMDeploy实战:TensorRT量化性能深度评测与优化指南 当我们将训练好的目标检测模型部署到生产环境时,推理速度往往成为关键瓶颈。本文将通过实测数据,揭示如何利用MMDeploy工具链将MMDetection模型转换为TensorRT引擎,并深入分析FP…...

告别重训练!用Upsample Anything (UPA) 给SAM、DINOv2的特征图无损放大,实测教程

告别重训练!用Upsample Anything (UPA) 给SAM、DINOv2的特征图无损放大,实测教程 视觉基础模型(如SAM、DINOv2)在提取图像特征时,通常会输出低分辨率的特征图。这对于需要像素级精度的下游任务(如分割、检测…...

ha_xiaomi_home:小米智能家居与Home Assistant无缝集成指南

ha_xiaomi_home:小米智能家居与Home Assistant无缝集成指南 【免费下载链接】ha_xiaomi_home Xiaomi Home Integration for Home Assistant 项目地址: https://gitcode.com/GitHub_Trending/ha/ha_xiaomi_home ha_xiaomi_home是一款开源工具,能帮…...

达摩院CAM++说话人识别模型实战:5分钟搞定Modelscope部署与中文测试

达摩院CAM说话人识别模型实战:5分钟搞定Modelscope部署与中文测试 语音技术正在重塑人机交互的边界,而说话人识别作为其中的核心能力之一,已经从实验室走向工业级应用。达摩院开源的CAM模型以其卓越的准确率和计算效率,正在成为开…...

从231MB到69.5MB:我是如何优化Emby信息推送Docker镜像体积的(Python Alpine实战)

从231MB到69.5MB:Python Alpine实战中的Docker镜像瘦身艺术 在资源受限的云环境或边缘设备上部署服务时,Docker镜像体积直接决定了部署效率和资源利用率。一个典型的场景是:当你在凌晨三点通过SSH连接到树莓派部署更新时,发现需要…...

Spring Boot整合EasyExcel,动态导出表头和数据

前端页面设置了列表表头 的动态查询,用户可以自己设置那些需要关注的字段,为此,后端需要保持导出的表头与前端一致。 本文介绍如何使用spring booteasyExcel,动态导出数据。 步骤1.设置实体类 Data public class RepairWorkOrder …...

嘎嘎降AI下载结果后的后处理教程:格式调整和质量自查方法

嘎嘎降AI下载结果后的后处理教程:格式调整和质量自查方法 上周室友第一次用降AI工具,操作错了好几步,差点浪费机会。觉得有必要写一篇详细教程。 我用的是嘎嘎降AI(www.aigcleaner.com),4.8元一篇&#x…...

探索ai辅助开发新范式:在快马平台打造深度集成codex的智能编程助手

最近在尝试AI辅助开发时,发现InsCode(快马)平台的深度集成功能特别适合探索Codex这类智能编程助手的潜力。通过实际体验,总结了一套将AI能力融入完整开发流程的方法,分享几个关键发现: 智能补全的上下文感知 传统代码补全往往局限…...

从‘点接触’报错到成功划分:Fluent Meshing中四面体与多面体网格的实战选择指南

Fluent Meshing网格选择实战:从点接触报错到高效划分策略 当你在Fluent Meshing中遇到"点接触"导致的网格划分失败时,那种挫败感我深有体会。记得去年处理一个涡轮机冷却通道模型时,几个看似微不足道的点接触让整个项目停滞了两天。…...

OmenSuperHub:基于WMI BIOS控制的惠普暗影精灵硬件管理终极指南

OmenSuperHub:基于WMI BIOS控制的惠普暗影精灵硬件管理终极指南 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度,自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub OmenSuperHub是一款专为惠普暗…...

15 从 MLP 到 LeNet:PyTorch 网络代码为什么总像模板?

PyTorch 网络代码为什么总像模板? 很多人第一次看 PyTorch 网络代码时,都会有一种很熟悉的感觉: 代码不长每一行单独看也认识但合在一起,就完全不知道这个网络到底是怎么搭出来的 尤其是下面这几个东西,最容易让人越看…...

Matplotlib横坐标刻度从原点开始的3种实用方法

1. 为什么横坐标刻度从原点开始很重要 做数据可视化时,我们经常需要展示数据从零开始的变化趋势。比如展示销售额增长、用户数量变化或者实验数据对比时,如果横坐标不从零开始,很容易造成视觉上的误导。我见过不少新手做的图表,因…...

如何永久保存微信聊天记录?WeChatMsg让数据掌控在你手中

如何永久保存微信聊天记录?WeChatMsg让数据掌控在你手中 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeC…...

Keil5环境下STM32F103ZET6工程创建与软件仿真全攻略

1. Keil5开发环境与STM32F103ZET6简介 STM32F103ZET6是STMicroelectronics推出的一款基于ARM Cortex-M3内核的微控制器,具有72MHz主频、512KB Flash和64KB SRAM,广泛应用于工业控制、消费电子等领域。Keil MDK(Microcontroller Development K…...

无人机 Remote ID(RID)广播与技术标准概览

无人机 Remote ID(RID)广播与技术标准概览 目录 概述与知识地图一、RID 广播是什么二、广播内容与工作方式三、广播式 RID 与网络式 RID四、技术要点:频段、功率、硬件与协议五、Open Drone ID / ASTM 报文体系(扩展&#xff09…...

让ai成为你的mybatis导师:用快马智能优化sql与解决映射难题

让AI成为你的MyBatis导师:用快马智能优化SQL与解决映射难题 作为一个长期使用MyBatis的开发者,我深知SQL优化和复杂映射配置的痛点。最近尝试了InsCode(快马)平台的AI辅助功能,发现它确实能成为MyBatis开发的得力助手。下面分享几个典型场景…...

Altium Designer PCB设计效率翻倍:这30个快捷键让你告别鼠标流(附实战技巧)

Altium Designer PCB设计效率革命:30个核心快捷键与高阶应用策略 在电子设计自动化领域,效率提升从来不是简单的技巧堆砌,而是工作流的重构与思维模式的升级。作为从业15年的PCB设计专家,我见证过太多工程师被困在重复性操作中&am…...

HeyGem数字人视频生成系统批量版:快速部署与使用,新手入门全攻略

HeyGem数字人视频生成系统批量版:快速部署与使用,新手入门全攻略 1. 系统概述与核心价值 HeyGem数字人视频生成系统批量版是一款基于AI技术的智能视频合成工具,能够将音频与视频素材智能结合,生成口型同步的数字人视频。科哥的二…...

Quartus II ROM IP核的配置与高效初始化文件生成技巧

1. ROM IP核基础与使用场景 在FPGA开发中,ROM(Read-Only Memory)是一种常用的存储元件。与RAM不同,ROM中的数据在配置后是固定不变的,非常适合存储不需要频繁修改的配置数据、查找表或预置参数。Quartus II作为业界主流…...

iOS应用免上架安装全攻略:从Ad Hoc到TestFlight的实战选择

1. iOS应用免上架安装的核心需求 对于iOS开发者来说,App Store并不是唯一的应用分发渠道。在实际开发过程中,我们经常需要在不上架的情况下将应用安装到测试设备或特定用户的手机上。这种需求主要来自几个典型场景: 首先是开发阶段的快速验证…...

Windows 平台 Tongsuo 国密 NTLS 编译实战:从环境搭建到库文件生成

1. 环境准备:搭建Windows编译工具链 第一次在Windows上编译Tongsuo国密库的经历让我记忆犹新。当时为了赶项目进度,我连续折腾了三天才搞定整个环境。现在把这些经验整理出来,希望能帮你少走弯路。 编译Tongsuo国密库需要三个核心工具&#x…...