脚手架

141 阅读1分钟

1.本地调试脚手架

移除脚手架命令

npm remove -g cj_test_2

创建本地脚手架,在当前脚手架项目下执行命令

npm link

创建本地库文件

cd your-lib-dir
npm link
cd your-cli-dir
npm link your-lib

取消链接本地库文件

cd your-lib-dir
npm unlink
cd your-cli-dir
npm unlink your-lib

理解npm link

  • npm link your-lib:将当前项目中node_modules下指定的库文件链接到node全局node_modules下的库文件

  • npm link: 将当前项目链接到node全局node_modules中作为一个库文件,并解析bin配置创建可执行文件

2.脚手架命令注册和参数解析

利用 process 这个进程来获取命令和参数

#!/usr/bin/env node
// 注册一个命令 cj-test init
// 获取参数
const argv = require('process').argv
// 获取第三个参数作为commmand
const command = argv[2]
// 第三个参数 就当成命令参数
const options = argv.slice(3)
console.log('options', options)
console.log(argv)
if (command) {
  // 实现参数解析 --version 和 init --name
  if (command.startsWith('--') || command.startsWith('-')) {
    const globalOption = command.replace(/--|-/, '')
    if (globalOption === 'version'){
      console.log('version ^1.0.1')
    }else if(globalOption === 'name'){
      console.log('name cj-test')
    }else{
      console.error('command is error')
    }
  } else {
    console.log('command', command)
  }
} else {
  console.log('请输入命令')
}
if (options.length) {
  // 这里只解析一个参数
  let [option, params] = options
  option = option.replace("--", '')
  console.log('option', option, "params", params)
}

npm 发布之前要把一些unlink 全部干掉,使用线上的包