#npm #node.js
1.安装npm
从node.js网站安装npm
如果是OS X或者 windows系统,在Node.js download page下载安装包,要注意安装标有LTS的版本。
如果你是用的是 Linux,在 Node.js download page 或 NodeSource's binary distributions 寻找适合你系统的最近的版本。
2.更新 npm
检查 npm 版本号
在命令行中输入 npm -v 会得到目前安装的npm的版本号
如果不是最新版本,输入 npm install npm@latest -g 进行升级
安装npm package 方式
安装npm package 有两种方式:本地安装和全局安装
如果你自己的模块依赖于某个 package ,且通过 Node.js 的 require 进行加载,那么选择本地安装;
如果想将 package 作为一个命令行工具,那么选择全局安装,全局安装后你可以在任何目录下使用。
npm install 命令默认进行 本地安装。
1. 本地安装
安装
命令: npm install <package_name> [--save][-dev]
执行后会在当前目录下创建一个 node_modules文件夹,然后将下载的package 保存到文件夹中。
使用 --save 和 --save-dev 会将 package 安装到不同的节点下。有何不同?
在本地目录中如果没有 package.json 这个文件的话,那么最新版本的package 会被安装。
如果存在 package.json 文件,则会在 package.json 文件中查找针对这个包所约定的语义化版本规则,然后安装符合此规则的最新版本。
更新
在package.json文件所在的目录中执行 npm update 命令,然后执行 npm outdated 命令,不应该用任何输出。
卸载:
删除 node_modules目录下的package
命令:npm uninstall <package_name>
如果要从 package.json 文件中删除依赖,需要在命令后添加参数 --save
如果是使用 --save-dev 安装的,那么同样要添加 --save-dev 才能从 package.json 中删除
2. 全局安装
安装
命令:npm install -g <package_name>
更新
命令:npm update -g <package_name>
要查看哪些 package 需要更新,使用
npm outdated -g --depth=0
要一次更新所有的全局 package ,使用
npm update -g
卸载
npm uninstall -g <package_name>
查看所有全局安装的 package
npm list -g
package.json 文件
管理本地已经安装的npm packages 的最好方法就是创建一个package.json 文件,因为Node.js项目遵循模块化的架构,当我们创建了一个node.js项目后,相当于创建了一个package,而这个package的描述,就放在package.json里。
package.json 中包含了项目中所需要安装的package和项目的配置信息。我们可以根据package.json使用 npm install 安装所需要的package。
使用 npm init 可以按照步骤填写相关信息并自动生成一个 package.json,当然,如果你不想填也不想一步一步按回车,可以在命令后面加上 -y 来直接生成一个(相当于你全回车加yes)。
package-lock.json
在安装第一个package后,会发现npm创建了一个package-lock.json文件。她用来记录当前安装的所有package的来源和版本号,确保在每次或者别人使用 npm install 时,所有的package版本一致。以防止有些package不同版本不兼容导致出现各种问题。
如果需要更新package-lock.json中的版本,使用 npm install <package_name>@<version> 来更新项目中的package,这样package-lock.json中也会自动更新。
npm 四种安装方式的区别
命令 安装方式 运行 npm install初始化项目 运行 npm install --production或注明NODE_ENV变量值为production时
命令 | 安装方式 | 运行 npm install初始化项目时 | 运行 npm install --production或注明NODE_ENV变量值为production时 |
仅安装package到项目目录 | 不会安装package | 不会安装package | |
-g | 将package安装到全局 | 不会安装package | 不会安装package |
--save | 将package安装到项目目录下,并在package.json文件的dependencies节点写入依赖 | 会安装package | 会安装package |
--save-dev | package安装到项目目录下,并在package.json文件的devDependencies节点写入依赖 | 会安装package | 不会安装package |
根据使用package的不同目的,我们最好选择对应的安装方式(虽然说只要所有package安装正确,项目就能运行,但按照规范总是好的。当别人阅读你的package.json文件时,也不会造成误解。)
在卸载或更新package时,也要使用与安装时对应的方式。
其他npm常用命令
查看npm版本:npm -v/-version
将npm镜像源改为淘宝镜像(国内最好还是使用淘宝镜像,网速能快一点)
npm config set registry https://registry.npm.taobao.org
清除缓存 尤其是当使用npm安装时提示报错:npm resource busy or locked ……
npm cache clean
运行package.json中的"scripts"
"scripts": {
"test": "// some scripts here…",
"dev": "// some scripts here…"
},
npm run test 或者 npm run dev