要理解的点
- 怎么创建bin(#!/usr/local/bin/node 标名是用node来执行:可以查看自己node的位置:type node)
- 怎么执行的(查找./bin中的命令:bin中的命令是真正命令的快捷方式)
怎么创建lib
以下会用一个案例来分析
1、创建一个hello/first.js
2、直接执行看看效果
2、npm init -y && 创建 hello/package/lib
3、npm link 提供给其他库使用
直接执行
npm link
怎么执行的
1、创建一个 use/one.js
2、npm init -y
3、npm link hello 链接hello
我们发现多了./bin文件及hello
我们发现,./lib中的是快捷方式,真正执行会在原生那里执行,看config的输出也可以看出
当然,我们也可以直接npx first来执行
总结
1、创建一个node命令,其实也就是sheband标明是那个来执行
// 如:sh命令:#!/bin/sh
// node命令:#!/usr/local/bin/node
// 补充:真正怎么写,可以使用以下命令
$ type sh
sh is /bin/sh
$ type node
node is /usr/local/bin/node
2、我们在npm上面有了bin字段后,引用我们的包的项目,会在./lib下生成该命令的快捷方式
3、npm run xx:会在当前项目的node_modules的.lib下查找对应的命令
// 如果想查看一个xx的原身在哪里,可以直接finder中查看:右键,查看原身
4、于是会在该命令的真正位置执行相应的代码