打建一个自己的NPM命令
2021-11-06 本文已影响0人
DoEmpty
本地怎么打建自己的npm包
- 1.创建一个目录myPackage,执行npm init,一直yes就好
- 2.随便创建一个目录,就叫myCmd好了,创建需要的js文件,编写js代码
- 3.重要:在package.json中配置命令,如下图
配置bin - 4.执行npm link命令将自己的包注册到全局node_modules中
- 5.新建一个引用目录,就叫做myPackageExec好了,同样执行npm init
- 6.执行命令npm link myPackage,将自己的npm包安装到当前目录下
- 7.配置npm命令,在package.json的scripts下添加一个log命令,执行的内容就是上一个npm包中配置的bin中的key 配置npm命令
- 8.准备就绪,执行npm命令吧
执行结果
原理解析
npm安装依赖的过程中回去解析package.json文件,发现有bin属性,会在/node_modules/.bin下注册bin属性中的命令,注册的方式就是创建一个同名批处理文件
批处理文件
而执行npm run log命令的时候首先回到当前目录的.bin目录下寻找对应的runMyCmd批处理文件
遇到的问题
1.文件都执行了,但是console.log的内容没有在控制台打印出来,分析批处理文件的内容发现并没有node命令,为什么呢?是因为没有指定myPackage/myCmd/index.js的执行环境,只需要在文件顶部配置#!/usr/bin/env node
就可以了
2.尝试在myPackage/myCmd/index.js中书写node代码时发现没有智能提示,原因是当前工作区打开了两个目录