从 0 构建自己的脚手架/CLI

97 阅读2分钟

记录从 0 构建自己的脚手架/CLI的自己遇的问题' 环境:win10 node版本: 16.15.1

  1. 在命令行启动 cli

    1.1 新建项目目录 my-node-cli

    1.2 新建程序入口文件 cli.js:编辑cli.js,并在package.json 文件中指定入口文件为 cli.js

    ## 在windows中创建文件的命令
    copy nul cli.js
    

    1.3 npm link 链接到全局

     ## 取消链接
     yarn unlink
    

    1.4 我们就可以来测试了,在命令行中输入 my-node-cli 执行一下

    遇到的问题:my-node-cli 提示命令不存在🦔🦔🦔

    1. 检查 PATH 环境变量: 确保 Yarn 的全局二进制文件目录已经添加到你的系统 PATH 环境变量中。在 Windows 系统中,这通常是 C:\Users\<你的用户名>\AppData\Local\Yarn\bin。在 Unix-like 系统中,这通常是 ~/.yarn/bin/usr/local/bin

    2. 重新打开命令行窗口:-在修改 PATH 环境变量后,你需要重新打开命令行窗口,以确保新的环境变量设置生效。

    3. 手动添加到 PATH:如果自动链接没有将 my-node-cli 添加到 PATH,你可以手动将其添加。在 Windows 系统中,你可以通过“系统属性”中的“环境变量”编辑 PATH,路径为实际的 Yarn 全局二进制文件目录。

    4. 使用完整路径执行:尝试使用完整路径来执行 my-node-cli,例如:

    C:\Users\<你的用户名>\AppData\Local\Yarn\bin\my-node-cli
    
  2. 询问用户信息

    2.1 需要引入 inquirer.js,在 cli.js设置问题信息,最后在命令行输入 my-node-cli 看一下执行结果

    遇到的问题:使用 require("inquirer") 报错🦔🦔🦔

    通过安装inquirer的8.2.5版本或更早版本来解决这个问题(inquirer库的8.2.5版本支持CommonJS模块。如果你的项目中需要使用require()来引入inquirer,你应该使用这个或更早的版本,因为从inquirer的9.0.0版本开始,它不再支持CommonJS模块导入方式,而是使用了ES模块的导入方式)

参考:从 0 构建自己的脚手架/CLI知识体系(万字) 🛠1、脚手架的简单雏形;2、脚手架工具体系;3、手写自己的脚手架;4 - 掘金