一、简介
- NPM是随同NodeJS一起安装的包管理工具
- 从NPM服务器下载第三方包到本地使用
- 从NPM服务器下载并安装别人编写的命令行程序到本地使用
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用
- npm 由网站、注册表(registry)和命令行工具 (CLI)三部分组成:
网站 是开发者查找包(package)、设置参数以及管理 npm 使用体验的主要途径。
注册表 是一个巨大的数据库,保存了每个包(package)的信息。
CLI 通过命令行或终端运行。开发者通过 CLI 与 npm 打交道。
二、安装
- 新版的nodejs已经集成了npm,测试安装
npm -v
- 升级
$ sudo npm install npm -g
- windows 安装
npm install npm -g
- 淘宝镜像
cnpm install npm -g
三、使用
3.1 包管理
- 安装包
npm install
npm install express # 本地安装
npm install express -g # 全局安装
包会安装在./node_modules 下,然后就可以require
// index.js
var lodash = require('lodash');
var output = lodash.without([1, 2, 3], 1);
console.log(output);
常见错误:
Error: Cannot find module 'lodash'
可以在 index.js 所在的目录中运行 npm install lodash 命令来修复
npm err! Error: connect ECONNREFUSED 127.0.0.1:8087
运行 npm config set proxy null
- 查看全局
npm list -g
3.2 使用 package.json
package.json 管理本地安装的npm 包
- CLI 创建
//npm init
npm init --yes //创建默认的,--y同--yes
- name和version 必须的参数
{
"name": "my-awesome-package",
"version": "1.0.0"
}
{
"name": "my_package",
"description": "",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://github.com/ashleygwilliams/my_package.git"
},
"keywords": [],
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/ashleygwilliams/my_package/issues"
},
"homepage": "https://github.com/ashleygwilliams/my_package"
}
参数含义
name
: the current directory name
version
: always1.0.0
description
: info from the readme, or an empty string""
main
: alwaysindex.js
scripts
: by default creates an empty test
script
keywords
: empty
author
: empty
license
: ISC
bugs
: info from the current directory, if present
homepage
: info from the current directory, if present
- 在初始命令中分别设置
> npm set init.author.email "[email protected]"
> npm set init.author.name "ag_dubs"
> npm set init.license "MIT"
- 指定依赖项
"dependencies": 生产需要的包
"devDependencies":开发测试需要的包
{
"name": "my_package",
"version": "1.0.0",
"dependencies": {
"my_dep": "^1.0.0"
},
"devDependencies" : {
"my_test_framework": "^3.1.0"
}
}
- --save and --save-dev install flags
同上
3.3 更新依赖包
- npm update
- npm outdate
3.4 卸载本地包
- 删除 node_modules 目录下面的包(package)
npm uninstall
- 从 package.json 文件中删除依赖
npm uninstall --save
npm uninstall --save-dev
注:以上操作加-g 为全局操作
官方中文文档