跳至主要內容

NPM

Jin...大约 5 分钟

NPM

1、资料

序号名称链接
1阿里云官方镜像站:https://developer.aliyun.com/mirror/
2npm阿里云官方镜像站https://developer.aliyun.com/mirror/NPM?spm=a2c6h.13651102.0.0.30da1b11lqqhom
3Npm阿里云地址:http://www.npmmirror.comopen in new window
4如何更换阿里云npm镜像参考文章https://developer.aliyun.com/article/868238?spm=a2c6h.13148508.0.0.66e84f0ehbA8XI
5

2、什么是npm?

npm(node package manager)是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

  1. 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  2. 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  3. 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
  • 由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "npm -v" 来测试是否成功安装。命令如下,出现版本提示表示安装成功
  • Npm可以理解为一个命令行工具,它的使命就是帮你为项目自动安装所依赖的开发包。
  • composer是php包依赖管理工具,node.js包管理工具是npm。可以这么去理解。
  • http://registry.npmjs.org是open in new window npm 的默认的开发包仓库,在npm命令行工具里面我们可以指定使用不同的仓库。http://registry.npmjs.org是官方的仓库open in new window。其他的仓库都是定时同步官方的仓库。也就是说如果切换到其他仓库代码包有一定的延迟。但是切换成国内的镜像源包的下载速度会很快。npm安装插件过程:从http://registry.npmjs.org下载对应的插件包open in new window(该网站服务器位于国外,所以经常下载缓慢或出现异常)

原淘宝 npm 域名即将停止解析,正如在《淘宝 NPM 镜像站喊你切换新域名啦》 中预告的那样:http://npm.taobao.orgopen in new windowhttp://registry.npm.taobao.orgopen in new window 将在 2022.06.30 号正式下线和停止 DNS 解析。域名切换规则: http://npm.taobao.orgopen in new window => http://npmmirror.comopen in new windowhttp://registry.npm.taobao.orgopen in new window => http://registry.npmmirror.comopen in new window

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

  1. –save-dev   简写: -D 适用于各类loder , plugin, babel, webpack等
  2. -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 初始化时不会自动下载模块
贡献者: Jin
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度