简介npm
npm是包管理工具,我们可以在npm中,下载依赖包。
安装npm
安装node的时候就会自动的安装npm,因此,我们可以在nodejs的官网下载并安装。
更新npm
因为npm的更新比node的更新更快。
因此,我们需要自己手动更新npm,打开cmd,输入npm -v,查看当前npm的版本,和npm的官网底部的版本进行对比。若不一致,则需要进行更新操作。
- 更新到下一版本
npm install npm@next-g
- 更新到最新版本
npm install npm@latest -g
安装npm本地包(分为全局安装和本地安装)
- 如果你自己的模块依赖于某个包,并通过 Node.js 的 require 加载,那么你应该选择本地安装,这种方式也是 npm
install 命令的默认行为。 - 如果你想将包作为一个命令行工具,(比如 grunt CLI),那么你应该选择全局安装。
本地安装
npm install package-name
安装完成之后,若项目中没有node_modules这个目录,那么安装成功后会多这个目录,且安装成功的包在node_modules目录下。
实例测试,新建index.js文件,(我们可以在控制台中直接运行js文件)
// index.js
var lodash = require('lodash');
var output = lodash.without([1, 2, 3], 1);
console.log(output);
如果输出2,3,那么安装成功,若出现cannot find module lodash,那么重新安装吧。
package.json
一个 package.json文件必须拥有:
"name"
all lowercase
one word, no spaces
dashes and underscores allowed
"version"
in the form of x.x.x
follows semver spec
创建一个package.json文件可以更好的管理已经安装的npm包。
创建方法
- 第一种方法:在项目目录下打开cmd,输入
npm init
- 第二种方法:在项目目录下打开cmd,直接输入
npm init --yes
这两种的主要差别在于,第一种时根据开发人员自身需求,定制的,而第二种,是根据项目自动生成的。
自动生成的内容格式:
name: the current directory name
version: always 1.0.0
description: info from the readme, or an empty string ""
main: always index.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
Specifying Dependencies
To specify the packages your project depends on, you need to list the packages you’d like to use in your package.json file. There are 2 types of packages you can list:
“dependencies”: These packages are required by your application in production.(这些包是应用程序开发过程中所必需的包)
npm install package_name --save//安装的包直接在dependencies下面
“devDependencies”: These packages are only needed for development and testing.(这些包仅用于开发和测试)
npm install package-name --save -dev//安装的包直接在devDependencies下面
更新本地安装的包
定期更新依赖包是一个好的习惯,因为依赖包开发者可能更新了一些新的功能,或者做了优化,这样对我们的应用也是有一定的益处。
- 在 package.json 文件所在的目录中执行 npm update 命令。
- 执行 npm outdated 命令。不应该有任何输出。
卸载本地包
- 如需删除node_modules里面的包,那么执行 npm uninstall package_name
- 如需删除package.json里面的依赖,那么需要执行 npm uninstall --save package_name (这个是针对dependencies的)
- 如需删除package.json里面的依赖,那么需要执行 npm uninstall --save-dev package_name (这个是针对devDependencies的)
验证删除与否,可以在node_modules中,查看,是否还有删除的包。
ls node_modules 在 Unix 系统中使用,例如 "OSX"
dir node_modules 在 Windows 系统中使用。
安装全局包
npm install -g package_name
更新全局包
npm update -g package_name
查找所以需要更新的包
npm outdated -g --depth=0
更新所有的全局包
npm update -g
卸载全局包
npm uninstall -gpackage_name