常用模块
- typescript:将ts代码转移成js代码
- Commander :命令行管家、参数解析。--help其实就借助了他
- Inquirer:选择器、交互式命令行工具,有他就可以实现命令行的选择功能
- chalk:粉笔帮我们在控制台中画出各种各样的颜色
- Ini:配置文件ini格式解析器喝序列化器
- Ora:实现命令行loading
- nodemon:监控文件变化执行编译命令
命令
-
pnpm init
-
pnpm install commander inquirer chalk ini ora
-
pnpm install @types/node typescript nodemon --save-dev
#! usr/bin/env node 必写!!! //采用node来执行文件
-
cd /usr/local/lib
-
npm install typescript -g
-
npm link 临时的链接到全局下,将全局的包链接到本地(本地)
- 可以方便调试我们写的包。创建一个软链映射到全局下
- 改入口文件要重新link
-
.cat npmrc
-
cd /usr/local/lib
-
cd node_modules
"bin":{ "my-cli":"./bin/index.js" }, -
npm link
-
"type": "module",//使用es6语法
-
tsc init
{ "compilerOptions": { "outDir": "bin", // 输出bin的目录 "sourceMap": true, // 采用sourcemap "target": "es6", // 目标语法 "module": "esnext", // 模块格式 "moduleResolution": "nodenext", // 模块解析方式 "strict": false, // 严格模式 "resolveJsonModule": true, // 解析json模块 "esModuleInterop": true, // 允许通过es6语法引入commonjs模块 "rootDir":"src",//根目录src,就是将src目录下的内容输出到bin下 "baseUrl":"./src", "jsx": "preserve", // jsx 不转义 "lib": ["esnext", "dom"], // 支持的类库 esnext及dom }, "include": ["src"], //src目录为原代码目录 "exclude": ["node_modules"] } -
npm run build
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "tsc" }, -
nodemon.json
{ "watch" :["src"],//监控src "ext":"ts",//监控的扩展名 "exec":"tsc",//每次变化之行tsc } -
npx nodemon,//启动自执行
-
my-cli ,//另开一个终端输入命令my-cli
-
npm i axios