NPM
大约 5 分钟
NPM
1、资料
序号 | 名称 | 链接 |
---|---|---|
1 | 阿里云官方镜像站: | https://developer.aliyun.com/mirror/ |
2 | npm阿里云官方镜像站 | https://developer.aliyun.com/mirror/NPM?spm=a2c6h.13651102.0.0.30da1b11lqqhom |
3 | Npm阿里云地址: | http://www.npmmirror.com |
4 | 如何更换阿里云npm镜像参考文章 | https://developer.aliyun.com/article/868238?spm=a2c6h.13148508.0.0.66e84f0ehbA8XI |
5 |
2、什么是npm?
npm(node package manager)是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
- 由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "npm -v" 来测试是否成功安装。命令如下,出现版本提示表示安装成功
- Npm可以理解为一个命令行工具,它的使命就是帮你为项目自动安装所依赖的开发包。
- composer是php包依赖管理工具,node.js包管理工具是npm。可以这么去理解。
- http://registry.npmjs.org是 npm 的默认的开发包仓库,在npm命令行工具里面我们可以指定使用不同的仓库。http://registry.npmjs.org是官方的仓库。其他的仓库都是定时同步官方的仓库。也就是说如果切换到其他仓库代码包有一定的延迟。但是切换成国内的镜像源包的下载速度会很快。npm安装插件过程:从http://registry.npmjs.org下载对应的插件包(该网站服务器位于国外,所以经常下载缓慢或出现异常)
原淘宝 npm 域名即将停止解析,正如在《淘宝 NPM 镜像站喊你切换新域名啦》 中预告的那样:http://npm.taobao.org 和 http://registry.npm.taobao.org 将在 2022.06.30 号正式下线和停止 DNS 解析。域名切换规则: http://npm.taobao.org => http://npmmirror.comhttp://registry.npm.taobao.org => http://registry.npmmirror.com
3、NPM命令
2.1、查看npm源地址设置
默认官方镜像地址
npm config get registry
2.2、更换阿里云npm镜像
npm config set registry https://registry.npmmirror.com
2.3、解除镜像并恢复到官方源
如果需要解除镜像并恢复到官方源,请执行以下命令:
npm config set registry https://registry.npmjs.org
2.4、配置全局依赖路径和缓存
npm config set prefix "D:\Jin\NodeJS\node_global"
npm config set cache "D:\Jin\NodeJS\node_cache"
npm config set prefix "D:\Jin_Data\NodeJs\node_global"
npm config set cache "D:\Jin_Data\NodeJs\node_cache"
#查看配置信息
npm config list
2.5、清除缓存命令
npm cache clear --force
2.6、查看安装信息
npm list -g
2.7、查看 npm 的配置
npm config list -l
2.8、相关命令
# 查看 npm 命令列表
$ npm help
# 查看各个命令的简单用法
$ npm -l
# 查看 npm 的版本
$ npm -v
# 查看 npm 的配置
$ npm config list -l
# 初始化 package.json 文件
$ npm init
# 设置环境变量
$ npm set init-author-name 'Your name'
$ npm set init-author-email 'Your email'
$ npm set init-author-url 'http://yourdomain.com'
$ npm set init-license 'MIT'
# 本地安装
$ npm install <package name>
# 全局安装
$ sudo npm install -global <package name>
$ sudo npm install -g <package name>
# 也支持直接输入Github代码库地址
$ npm install git://github.com/package/path.git
$ npm install git://github.com/package/path.git#0.1.0
# 强制重新安装
$ npm install <packageName> --force
# 如果你希望,所有模块都要强制重新安装,那就删除node_modules目录,重新执行npm install
$ rm -rf node_modules
$ npm install
# 安装不同版本
$ npm install sax@latest
$ npm install sax@0.1.1
$ npm install sax@">=0.1.0 <0.2.0"
# 升级当前项目的指定模块
$ npm update [package name]
# 升级全局安装的模块
$ npm update -global [package name]
# 卸载模块
$ npm uninstall [package name]
# 卸载全局模块
$ npm uninstall [package name] -global
# 当前的目录临时的放到全局下
npm link
# 删除符号链接
npm unlink
$ npm adduser
Username: YOUR_USER_NAME
Password: YOUR_PASSWORD
Email: YOUR_EMAIL@domain.com
#将当前模块发布到npmjs.com
# 需要向npmjs.com申请用户名
$ npm adduser
# 登录
$ npm login
# 发布
$ npm publish
# 如果当前模块是一个beta版,比如1.3.1-beta.3,那么发布的时候需要使用tag参数,将其发布到指定标签,默认的发布标签是latest
$ npm publish --tag beta
# 如果发布私有模块,模块初始化的时候,需要加上scope参数。只有npm的付费用户才能发布私有模块。
$ npm init --scope=<yourscope>
# 如果你的模块是用ES6写的,那么发布的时候,最好转成ES5。首先,需要安装Babel。
$ npm install --save-dev babel-cli@6 babel-preset-es2015@6
# 版本号管理
semver规范 规定了版本号 由3位组成 MAJOR MINOR PATCH
MAJOR 可能不在兼容老版本
MINOR 新增了一些兼容旧版本的api vue.observable
PATCH 修复bug
$ npm version major minor patch
2.9、–save-dev 和-save
- –save-dev 简写: -D 适用于各类loder , plugin, babel, webpack等
- -save 简写 :-S 适用于 UI框架,vue等
1、 npm install moduleName
- 该模块依赖会写入dependencies节点
- 安装在该项目的node_modules目录下
- npm install 初始化不会下载模块,需要自己手动下载
2、npm install moduleName --save-dev
- 该模块依赖会写入devDependencies节点
- 安装在该项目的node_modules目录下
- npm install 初始化时会自动下载模块
3、npm install moduleName --save
- 该模块依赖会写入dependencies节点
- 安装在该项目的node_modules目录下
- npm install 初始化时会自动下载模块
4、npm install moduleName -g
- 该模块依赖不会被写入devDependencies或dependencies节点
- 安装至全局中
- npm install 初始化时不会自动下载模块