前端架构: 简易版脚手架开发

开发一个简易版脚手架

  • 将脚手架命名为: xyzcli, 这个名称比较随意,截止在目前,我看到npm上没有这个包,尽量避免重名

  • 初始化

    • $ mkdir xyzcli
    • $ cd xyzcli
    • $ npm init -y
  • 新建 bin/index.js

    js 复制代码
    #!/usr/bin/env node
    
    console.log('xyzcli')
  • 回到 package.json 中配置

    js 复制代码
    {
      "bin": {
        "xyzcli": "bin/index.js"
      }
    }
  • 发布到 npm

    • $ npm login
    • $ npm publish
  • 去 npm 网站,我的 packages 下去查看

验证刚刚发布的包

  • 安装 $ npm i -g xyzcli
  • 执行 $ xyzcli
    • 可看到输出 xyzcli
  • 这个命令的原理就是创建一个软链,之前也讨论过:
  • 通过 $ which xyzcli 可看到 命令所在的路径
  • 通过 $ ll 该路径 可看到当前 xyzcli 已经被安装到了 /.../xx/node_modules下了
  • 这个 node_moudles 就是我们最顶层的node_modules, 也就是全局安装的 node_modules
  • cd 到该 node_modules 下,执行 $ ll
  • 可以看到有一个 xyzcli 软链到我们本地项目的 xyzcli 目录下
    • 创建软链的原因,是本地已经有这个代码,它会自动创建这个软链,即使把本地代码删除,也没有问题
    • 因为本地代码已经被发布到 npm 上了
  • 这里的软链指向本地的代码仓库
    • 如果在当前目录下存在一个与安装的cli相同的目录
    • 就会把这个目录作为一个软链直接链过去
    • npm 这样做的方式,提供了一种非常智能化的功能,方便对我们当前开发的脚手架进行一个本地的开发调试
    • 此时,如果我们直接改动本地脚手架项目的代码,是会实时发生变更的,方便全局调试
  • 如果不希望安装这种软链,而是安装远程的版本,则离开当前目录,找不到本地同名的脚手架项目目录即可
  • 重新安装后,还到全局的 node_modules 里面就看到不是软链,而是一个实实在在的目录了
相关推荐
Geek-Chow12 小时前
微服务认证与授权:01 — 概念
java·前端·数据库
狂炫冰美式12 小时前
凌晨睡不着,我给台风巴威写了个追踪网站
前端·后端·github
雪隐12 小时前
用Flutter做背单词APP-01服务器?不存在的,我家里就有
前端·人工智能·后端
用户22046039586813 小时前
ES模块和commonJS两种标准下中实现__dirname?一篇文章教你理清楚
前端
犹豫的大炮13 小时前
jQuery最核心的基础设施之一——数据缓存模块进化史
前端·缓存·jquery
小碗细面14 小时前
从 PRD 到上线:SpecKit 如何让 AI 真正参与前端交付
前端·ai编程·claude
WL学习笔记14 小时前
链式队列(数据结构)
前端·数据结构·jquery
我是大卫14 小时前
React源码解析-第三部分:协调与提交
前端·react.js·源码
都想学14 小时前
我把 12 个在线工具关掉了,换成了一个 Chrome 扩展
前端·chrome
xiaogai_gai14 小时前
钉钉数据集成到金蝶云星空案例分享:传给钉钉后,回传金蝶字段
java·前端·钉钉