脚手架开发1:入门前了解

377 阅读2分钟

创建一个简单的脚手架

  • 创建一个 npm 项目:
mkdir simple-cli
npm init -y
  • 创建指令文件
cd simple-cli
mkdir bin

创建 index.js 文件,在首行输入:

#!/usr/bin/env node
  • 注册指令名称

在 package.json中添加 bin 属性:

{
  "bin": {
    "test-cli": "bin/index.js"
  }
}
  • 登录 npm,并发布
npm login
npm publish
  • 这里登录时 npm 需要开启 Two Factor Authentication(双因素身份验证),操作步骤如下:

    • 网页登录npm账号
    • 进入到个人 Account设置里
    • enable 2FA
    • 选择一个验证方式,提交后显示一个二维码
    • 手机上下载身份验证器,本次下载是腾讯身份验证器APP
    • 扫描网页上的二维码,验证器出现6为验证码
    • node 中 npm 登录时输入6位验证码即可。
  • node12 版本之前,安装全局 npm 包时,如果当前文件夹有同名的文件夹,npm 会默认把全局安装的指令链接到本地同名文件,不过在 node15 版本以后,这个特性没有了,需要手动去配置软连接。

  • 发布记录如下:

这时在 npm 官网登录个人账号进入packages里可以看到本次发布的包。

  • 全局安装发布的包
npm i -g simple-cli
  • npm 包更新

    • 查看包当前版本号:npm view packageName versions
    • 提交修改版本:npm version <update_type>
      • update_type 有3个参数:a.b.c
      • 第一位版本号:npm version major
      • 第二位版本号:npm version minor
      • 第三位版本号:npm version patch
    • 此操作只是在本地修改了版本号
    • 发布更新到 npm npm publish
  • 验证

    • 查询指令:which web-simple-cli

      返回 web-simple-cli 指令所在目录:/usr/local/bin/web-simple-cli

    • 查看指令对应文件目录:ll /usr/local/bin/web-simple-cli返回

    lrwxr-xr-x  1 userName  admin  47  2 12 17:15 /usr/local/bin/web-simple-cli@ -> ../lib/node_modules/web-simple-cli/bin/index.js
    

    返回表明指令所对应的文件是安装包所在的 /usr/local/lib/node_modules/simple-cli/bin/index.js 文件。

    • 查看安装包:

      cd /usr/local/lib/node_modules

      ll 返回

      drwxr-xr-x   4 userName  wheel   128  2 12 17:15 simple-cli/
      

      返回表明包对应的是远程安装的包。

      • 在 node 12.11版本前,如果全局安装包时所在路径中存在和要安装的包的同名包,则安装时会把指令文件对应的文件指向当前目录下的同名包,这样主要时方便全局调试包,不过 node 12.11.1的版本后取消了该功能。

      • 要在本地调试 npm 包,要让包的全局指令指向本地包,那就是先到本地包内,执行npm link将当前包的指令添加到全局覆盖调npm远程仓库的包文件夹。

        lrwxr-xr-x   1 tangna  wheel    69  2 13 11:18 web-simple-cli@ -> ../../../../Users/tangna/workspace/codes/web-architect/web-simple-cli
        

        验证:修改本地包的代码,执行指令可以看到更新。