啊哈哈哈,打败了那么多知识点,终于站在了node的面前,fighting!
- 什么是npm
所谓npm,全称是node package manager,即node包管理器,用来处理包的安装、卸载、更新、查看、搜索、发布等。
- npm的作用
将开发者从繁杂的包管理中工作(版本、依赖等)中解放出来,更加专注于功能的开发。
npm包本地安装是在放在当前目录中的node_modules文件夹中。
-
package.json主要内容:
- name:包的名称,使用者搜索的内容
- description:描述内容
- version:发布的包的版本
- main:主程序入口
- scripts:全局命令行工具,和bin 类似,但是参数后接命令行而不是文件路径。相当于快捷键的存在(个人理解)。
- dependencies:存储依赖的包的信息,有了它,不需要上传依赖的包,而是存储体积很小的类似种子文件。当其他用户
npm install
时,会自动根据dependencies中的包信息去下载。通过npm install XXX --save
可以录入进参数中。 - devDependencies:作用等同于dependencies,但是只是开发时需要的包放入这里,普通用户在
npm install
时是不会下载这部分内容的。通过npm install XXX --save-dev
可以录入进参数中。
-
发布包:
- 在npm官网注册
- npm login 进行注册
- npm publish 进行发布
-
如何自制命令行工具
(这个非常吊,以后我可以一个命令对电脑进行一些个性化操作,一个命令去下载所有预先设定的APP)
- 必备命令语句:
#!/usr/bin/env node
——这句话的意思是用node去执行文件。 - 在package.json中加参数:
bin:{ }
bin
中开始设置命令,举例如下:
- 必备命令语句:
{
"name": "hars",
"version": "1.0.0",
"description": "",
"main": "index.js",
"bin":{
"come on baby":"./index.js"
//这里的`come on baby` 安装到系统中所用的名字(命令名称),因此不能重复。
//`./index.js`代表命令名称真正指向的要执行的文件路径。
}
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"hars": "^1.0.0"
},
"devDependencies": {
"easytpl": "^1.0.4"
}
}