Skip to content

发布自己的脚手架

创建脚手架 发布到NPM

image.png

定义脚手架指令

image.png

发布到NPM

image.png

下载查看发布的npm

image.png

全局安装 执行

image.png
image.png

查看软连接

image.png

image.png
image.png
image.png

image.png

脚手架本地调试

image.png
image.png

引入别的库文件

image.png
修改入口文件

image.png
将工具包 link到 global

bash
//wcrane-test-cli
npm link

image.png

测试工具包
image.png

将工具包链接到全局
image.png

** 修改工具包**
image.png

** 同步更新**
image.png

image.png

修改仓库到远程仓库

取消当前 链接本地链接

image.png

从远处仓库安装

image.png

修改本地仓库不影响远程仓库

image.png

image.png

image.png

image

注册一个命令 wcrane-test init

image.png

javascript
// 参数
require('process').argv   
/* 

argv: [ 
'/usr/local/bin/node', 
'/usr/local/bin/wcrane-test', 
'init' 
],  

*/

image.png

bash
wcrane-test init

image.png

实现 wcrane-test --version

javascript
#!/usr/bin/env node

const lib = require("wcrane-test-lib")
// 注册一个命令 imooc-test init
const argv = require('process').argv;

const commond = argv[2];


const options = argv.slice(3);
if (options.length > 1) {

    let [option, param] = options;
    option = option.replace("--", "")

    if (lib[commond]) {
        if (lib[commond]) {
            lib[commond]({ option, param });
        } else {
            console.log("无效命令")
        }
    } else {
        console.log("请输入命令")
    }

}



// 实现参数解析 --version 和  init --name

if (commond.startsWith('--') || commond.startsWith('-')) {
    //  全局options
    const globalOption = commond.replace(/--|-/g, '');
    // console.log(globalOption)

    if (globalOption === 'version' || globalOption == 'V') {
        console.log('1.0.0')
    }
}

image.png

功能开发完之后发布到npm

image.png

json
{
  "name": "wcrane-test-lib",
  "version": "1.0.1",  // 修改
  
  "description": "",
  "main": "lib/index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

发布主包

image.png

开箱即用的npm publish 包:wcrane-tool pkg

前端知识体系 · wcrane