打建一个自己的NPM命令

本地怎么打建自己的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代码时发现没有智能提示,原因是当前工作区打开了两个目录
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容