记录从 0 构建自己的脚手架/CLI的自己遇的问题' 环境:win10 node版本: 16.15.1
-
在命令行启动 cli
1.1 新建项目目录 my-node-cli
1.2 新建程序入口文件 cli.js:编辑cli.js,并在package.json 文件中指定入口文件为 cli.js
## 在windows中创建文件的命令 copy nul cli.js1.3 npm link 链接到全局
## 取消链接 yarn unlink1.4 我们就可以来测试了,在命令行中输入 my-node-cli 执行一下
遇到的问题:my-node-cli 提示命令不存在🦔🦔🦔
-
检查 PATH 环境变量: 确保 Yarn 的全局二进制文件目录已经添加到你的系统 PATH 环境变量中。在 Windows 系统中,这通常是
C:\Users\<你的用户名>\AppData\Local\Yarn\bin。在 Unix-like 系统中,这通常是~/.yarn/bin或/usr/local/bin。 -
重新打开命令行窗口:-在修改 PATH 环境变量后,你需要重新打开命令行窗口,以确保新的环境变量设置生效。
-
手动添加到 PATH:如果自动链接没有将
my-node-cli添加到 PATH,你可以手动将其添加。在 Windows 系统中,你可以通过“系统属性”中的“环境变量”编辑 PATH,路径为实际的 Yarn 全局二进制文件目录。 -
使用完整路径执行:尝试使用完整路径来执行
my-node-cli,例如:
C:\Users\<你的用户名>\AppData\Local\Yarn\bin\my-node-cli -
-
询问用户信息
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 - 掘金