Skip to content

Latest commit

 

History

History
76 lines (58 loc) · 3.5 KB

08.npm-PackageManagement.md

File metadata and controls

76 lines (58 loc) · 3.5 KB

包管理

Nodejs与npm的关系

  • 我们在开发时,经常会用到很多别人已经写好的代码或第三方库,我们一般会这样操作:搜索,下载,解压,引入。 如果每次都这么做势必很麻烦,于是Node.js的设计者打造了一个包管理器:npm 一些第三方库的作者把代码放在npm上, 当我们想要使用时,直接通过 npm 命令去安装即可,不用去理会应该下载什么?放在哪里?一切都处理好。 而且如果我们要用的模块A,而模块A又依赖模块B,模块B又依赖模块C和D,那么npm会根据依赖关系,把所有依赖的包都下载下来并且管理起来。
  • 1.npm全称:Node package manager(Node包管理器),安装了Node就自动安装好了npm。 2.包(库、项目):电脑上的一个普通文件夹,包含了package.json,就变成了一个符合npm规范的包。 3.使用命令:npm init把一个普通的文件夹变成一个包,即自动生成package.json
  • 为了让你的npm下载东西更迅速,请务必执行以下命令 npm config set registry http://registry.npm.taobao.org/

npm

  • npm init -y 初始化包管理
    • npm init
  • npm -v 返回当前npm的版本号 命令
  • npm install xxxx 安装一个包的命令
  • npm install xxx -g 全局安装 (install 可以简写为 i)
  • npm uninstall xxx -g 全局卸载
  • npm uninstall 包名 --save 删除当前包 简写 -S 省略不写也表示局部删除
  • --save 生产环境 简写 -S
  • --dev 开发环境 简写 -D
  • npm view 包名 versions 查看当前包的所有版本号
  • npm ls 显示当前所在项目下 安装的所有包
  • npm ls -g 显示电脑中全局安装的的所有包

npm 包管理

  • node_modules node模块 下载 依赖包 所处的文件地址
  • package.json 文件包管理信息依赖
  • package-lock.json 文件锁(下载的依赖明细)

查看和更换下载源

  • 查看当前 npm 源 npm config ls
  • 查看下载源 npm get registry
  • 切换下载源 npm config set registry https://registry.npmjs.org/
  • 设置为淘宝源 npm config set registry http://registry.npm.taobao.org/

yarn

  • 初始化包管理 yarn init | yarn init -y
  • 初始依赖下载 yarn
  • 添加依赖 yarn add xxx
  • 删除依赖 yarn remove xxx

pnpm

  • 初始化包管理 pnpm init
  • 初始依赖下载 pnpm i | pnpm init
  • 添加依赖 pnpm add xxx -S 默认写入dependencies -D 写入devDependencies -g 全局安装
  • 删除依赖 pnpm remove xxx --global 移除全局包
  • 升级所有依赖 pnpm update
  • 升级单个依赖 pnpm upgrade xxx --global 更新全局包
  • 查看可升级的依赖 pnpm outdated

devDependencies 和 dependencies 的区别

  • devDependencies 用于开发环境 npm install name -save-dev 简写 npm install name -D

    • devDependencies是只会在开发环境下依赖的模块,生产环境不会被打入包内
  • dependencies 用于生产环境 npm install name -save 简写 npm install name -S

    • dependencies依赖的包不仅开发环境能使用,生产环境也能使用

yarn.lock 文件的含义

  • 锁定当前项目所有依赖和包的版本

项目无法下载依赖时

  • 报错信息 指明两个依赖之间不匹配导致无法下载所有依赖
    • 场景:依赖A 1.0与依赖 B 1.0存在关联 但强制升级了B依赖到2.0 (强制升级 npm i xxx --force
    • 解决
    • 1.使用yarn 进行依赖下载
    • 2.强制下载依赖 npm i --force