脚手架学习

1、为什么全局安装 @vue/cli 后,执行 vue create xxx 命令就能运行?

npm 会将包安装在全局 node_modules 目录中,执行命令时,系统会在 PATH 环境变量列出的目录中查找 vue 可执行文件,这个文件通常位于 @vue/cli/bin/vue.js

@vue/cli 包的 package.json 中定义了安装时能自动创建命令的链接

javascript 复制代码
"bin": {
  "vue": "bin/vue.js"
}

2、执行 vue 命令时发生了什么?为什么 vue 指向一个 js 文件,但 我们却可以通过 vue 命令去执行它?

1、终端首先会在系统的 PATH 环境变量中查找名为 vue 的可执行文件,通过 where vue 命令可以看到;

2、 js 文件能够直接执行是因为文件顶部有 shebang 声明,告诉系统用 node 解释器来执行此脚本

javascript 复制代码
#!/usr/bin/env node

3、当通过 npm 全局安装 @vue/cli 时,npm 会做两件事:1、将包安装到全局 node_modules;

2、在系统的 bin 目录创建软链接指向这个 js 文件

3、脚手架开发流程

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

javascript 复制代码
#!/usr/bin/env node

配置 package.json,添加 bin 属性

编写脚手架代码,将脚手架发布到 npm

4、脚手架开发难点

1、如何将脚手架的逻辑会拆分为若干个简单的模块

2、如何注册命令,并将注册的命令执行到对应的方法上:vue create、vue add、vue invoke

3、如何设计参数解析( vue command options <params>)、帮助文档、命令行交互、日志打印、命令行文字变色、网络通信、文件处理等

5、脚手架本地link标准流程

1、链接本地脚手架:

bash 复制代码
cd your-lib
npm link
cd your-cli
npm link your-lib

npm link 会把 your-lib 链接到 node 下 node_modules 中,然后 your-cli 就可以连接了

2、取消连接本地库文件

bash 复制代码
cd your-lib
npm unlink
cd your-cli
npm unlink your-lib

npm link:将当前项目链接到 node 全局 node_modules 中作为一个库文件,并解析 bin 配置创建可执行文件

npm link your-lib:将当前项目链接到 node 全局 node_moudles 中作为一个库文件,并解析配置创建可执行文件

npm unlink:将当前项目从 node 全局 node_moudles 中移除

npm unlink your-lib:将 your-lib 文件从当前项目中移除

相关推荐
程序员大阳4 小时前
副队长JavaScript教程(49)-主动抛出异常与错误类型
javascript·异常处理·error·throw·错误类型
hhhjhl4 小时前
Protobuf.js 跨端三方库仓颉适配全流程
javascript·网络·udp
康小汪4 小时前
AI 写 Vue 总写成同一个味道:给它装 Skills,装的不是知识是边界
前端·vue.js·人工智能·ai编程·最佳实践
zhangrelay5 小时前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习
智能运维指南5 小时前
研制过程“两张皮“怎么破:研制一体化支撑平台的定位、能力边界与落地前提
java·前端·人工智能·嘉为蓝鲸
白山编程大哥6 小时前
Java 后端如何优雅地把 List 集合返回给前端
java·前端·list
Flynt7 小时前
我把热榜那篇"禁用 axios"逐条实测了一遍:结论大体对,坑在它没讲的地方
前端·javascript·axios
Csvn8 小时前
bundle优化
前端
slongzhang_8 小时前
linux 递归删除源码文件|递归删除目录下 *.js,但排除 *.min.js
linux·开发语言·javascript
北冥有鱼8 小时前
发版后动态路由点击报 `Failed to fetch dynamically imported module`」问题上的完整排查与修复过程
前端·vue.js