锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

使用esbuild创建自己的cli-总结

时间:2023-05-04 01:07:00 ejx115a流量变送器

1. ejs渲染

我们可以通过**ejs**模板引擎来渲染我们ejs文件

import ejx from 'ejs' const indexTemplate = fs.readFileSync(       path.resolve(__direname, '../template/index.ejs')   )  const code = ejx.render(indexTemplate.toString(), { 
            // ... }) 

2. 绝对路径

**esbuild**中,没有**__dirname**来去让我们得到当前的文件夹,我们使用以下方法

import { 
         fileURLToPath } from 'url' import path from 'path'  const __direname = fileURLToPath(import.meta.url)  const indexTemplate = fs.readFileSync(     path.resolve(__direname, '../template/index.ejs') ) 

3 格式化的模块化引擎

import prettier from 'prettier' prettier.format(code, { 
         parser: 'babel' }) 

4. 终端交互输入

我们可以通过**inquirer**为了让用户选择这个库,设置一些问题

import inquirer from 'inquirer' await inquirer.prompt([    { 
             type: 'input',     name: 'port',     default: () =&t; 8080,
    message: 'set port number'
  },
  { 
        
    type: 'input',
    name: 'packageName',
    message: 'set package name',
    validate (val) { 
        
      if (val) return true
      return 'Please input packName'
    }
  },
    { 
        
    type: 'checkbox',
    name: 'middleware',
    choices: [
      { 
         name: 'koaStatic' },
      { 
         name: 'koaRouter' },
    ]
  }
])

5. 安装依赖

这里用**yarn**安装依赖

import { 
         execa } from 'execa'
execa('yarn', { 
        
    cwd: getRootPath(), // 安装依赖到哪个文件夹下
    stdio: [2, 2, 2], // 出现安装的进度
})

6. 执行进程

我们可以通过**chalk**来给我们的执行进度,打上输出

import chalk from 'chalk'

console.log(chalk.blue()) // 这样就能打出蓝色的字体
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章