什么是全局包:
一般全局包都是工具包,例如:nrm,yarn,cnpm
全局包(工具包)特点:
需要自定义指令
查看全局包安装地址(prefix):
npm config ls
查看不同包的指令:
nrm回车 yarn回车
全局包实现步骤:
- 打开文件夹:F:\学习\front-end\14.手写Node模块系统\12\node_modules>cd ggjjglobal
- 初始化文件(生成package.json文件):npm init -y
- 编写业务逻辑:创建index.js
- 注意点:
如果没有配置main, 默认会将index.js作为入口
如果包中没有index.js, 那么就必须配置main
- 在全局包的package.json文件中添加bin这个key,在其中指定自定义指令。告诉系统执行全局命令时需要执行哪一个JS文件。详细了解package.json文件见package.json各字段含义
{
"author": "",
"bin": {
**"nj": "index.js"**
},
"bundleDependencies": false,
"deprecated": false,
"description": "",
"keywords": [],
"license": "ISC",
"main": "index.js",
"name": "ggjjglobal",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"version": "1.0.0"
}
- 根据包信息配置package.json文件注意点:
通过scripts可以帮我们记住指令, 然后通过npm run xxx方式就可以执行该指令
如果指令的名称叫做start或者test,那么执行的时候可以不加run
-
说明被执行文件的环境:在全局命令执行的JS文件中添加 #! /usr/bin/env node (在环境变量下查找node,用node执行当前的js文件)
-
将全局包安装(实际就是拷贝)到全局中:npm link (只要修改代码,就要重新拷贝一次,将本地包放到全局可以方便我们调试)。
-
cmd 中输入 nj 即可在控制台中执行index.js文件。
-
发布全局包到npm:npm publish
- 注意点:使用npm publish前需注册成为npm用户,详见使用、注册npm网站
- 安装nj包:npm install -g nj