Typescript+pnpm+nodemon:将ts代码转移成js代码

144 阅读1分钟

常用模块

  • 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