当前位置:网站首页 > Node.js开发 > 正文

node管理系统(node包管理工具)



常见的包管理器有npm npx cnpm yarn cyarn pnpm

npm(全称Node Package Manager,即node包管理器)是node.js默认的,以JavaScript编写的软件包管理系统。

npm 的背后,是基于 couchdb 的一个数据库,详细记录了每个包的信息,包括作者、版本、依赖、授权信息等。它的一个很重要的作用就是:将开发者从繁琐的包管理工作(版本、依赖等)中解放出来,更加专注于功能的开发

官网:npm | Home

官方文档:npm Docs

npm会随着node.js自动安装,安装完毕node.js后会自动安装npm

npm所有的命令

npm - npm 中文文档

查看当前npm版本:

npm -v 或者 npm -version

更新npm :

npm install npm@latest -g
npm init

初始化项目的package.json文件

npm init -y 或者 npm init -yes

当使用npm init -y的时候,如果当前文件夹(目录)的名字比较怪(有大写、有中文等)就会影响npm init -y的一步生成操作,此时需要npm init根据向导一步一步来生成,故而文件夹(项目)起名字时不要有大写字符、中文等。

2.1 package.json

package.json称为包描述文件或者项目描述文件,描述包的相关信息,它是一个JSON格式的文件,以供外部读取,npm init后自动生成。

包含以下字段:

name、version、description、keywords、maintainers、contributors、bugs、licenses、repositories、dependencies、homepage、os、cpu、engine、builtin、directories、implements、scripts、author、bin、main、devDependencies。
  • name 包的名字(必有)
  • version 包的版本(必有)
  • description 包描述
  • author 包的作者
  • main 包的入口js文件,从main字段这里指定的那个js文件开始执行(必有)
  • dependencies 当前包依赖的其他包 生产依赖
  • devDependencies 当前包依赖的其他包 开发依赖

2.2 package-lock.json

npm 5.0以上版本才有package-lock.json文件,作用是使npm下载加速,借鉴了yarn的yarn.lock

当下载包时自动生成package-lock.json

package-lock.json可以记录整个node-modules中文件夹的树状结构,再次下载的时候不用去先去读取包与包之间相关依赖,直接下载,速度较快。

扩展:

模块(Modules)和包(packages)的区别

  1. 模块可以是任何一个文件或者目录(目录下可以有很多个文件),只要能被引用即可
  2. 包是一个文件或者目录(目录下可以有多个文件)必须有一个package.json文件来描述,就可以是一个包。
npm -v 查看 npm 的版本 npm version 查看 npm 和 node 的版本 npm list -g 查看全局安裝的包 ​

3.1 本地安装

  • 在npm官网找到需要的包
  • 在项目的根目录下安装
    npm install / i 包名

    默认将其安装到生产依赖中

    • 将包安装到生产依赖dependencies(上线后需要的依赖)
      npm install / i 包名 --save 或者 npm install 包名 -S 
    • 将包安装到开发依赖devDependencies(写代码的时候需要的依赖)
      npm install / i 包名 --save-dev 或者 npm install module_name -D
  • npm i
    npm i/install

    安装package.json中的所有有记录的包(即项目中的所有的依赖)。

扩展:

包安装完毕使用:

在node.js中通过require('包名')来加载该模块

在es6中用过 import(‘包名’)来加载该模块

3.2 全局安装

npm install / i 包名 -g

全局安装(全局安装都是安装一些工具类的包),安装的包可以当做命令行来使用。

3.3 删除清缓存命令

  • 删除指定包
    npm remove / r 包名
  • 卸载指定包
    npm uninstall 包名
  • 清缓存
    npm cache clean --force

    若是下载包报错 说有一个完成的程序一直在运行中,请使用上面代码清除缓存

注意:

当需要终止包的下载时,使用ctrl+C进行终止

3.4 查看设置当前npm仓库地址

npm config get registry 查看当前 npm 仓库地址命令 npm config set registry http://registry.npmmirror.com   设置npm仓库地址为淘宝镜像源 依然用 npm 命令,但是实际是从淘宝国内服务器下载的,如果需要恢复成原来的官方地址只需要执行如下命令:npm config set registry https://registry.npmjs.org ​

注:http://npm.taobao.org 和 http://registry.npm.taobao.org 已在 2022.06.30 号正式下线和停止 DNS 解析。新域名为 npmmirror.com即

http://npm.taobao.org => npmmirror 镜像站 http://registry.npm.taobao.org => http://registry.npmmirror.com

3.5 发布包

通过npm login登录npm账户输入用户名、密码、邮箱、otp(发往邮箱的一次性密码),成功登录npm官网

注意:当前的npm不能是镜像需要时npm仓库,仓库切换可以使用nrm也可使用代码进行切换通过上面的代码

通过npm publish发布仓库

npm 从5.25.2 版开始,增加了 npx 命令,npx 是一个由 Node.js 官方提供的用于快速执行 npm 包中的可执行文件的工具。它可以帮助我们在不全局安装某些包的情况下,直接运行该包提供的命令行工具。npx 会在执行时,检查本地项目中是否安装了对应的依赖,如果没有安装则会自动下载安装,并执行命令。如果本地已经存在该依赖,则直接执行命令。

npx 不会像 npm 或 yarn 一样将包下载到本地的 node_modules 目录中。相反,它会在执行命令时,在本地缓存中寻找并下载包,然后执行该包中的命令,执行完毕后会将这些包删除。这样可以避免在开发过程中在全局安装大量的包,同时也可以确保使用的是最新版本的包。

参数:

--no-install使用本地模块,不下载远程模块 --ignore-existing 忽略本地的同名模块,强制安装使用远程模块 -p 参数用于指定 npx 所要安装的模块版本。 ​
npx --ignore-existing create-react-app my-react-app

cnpm是淘宝对国外npm服务器的一个完整镜像版本,也就是*淘宝 NPM 镜像*

npm config set registry https://registry.npmjs.org

cnpm和npm的使用基本没有区别,只需要将npm替换成cnpm

yarn是Facebook开源的新的包管理器,可以用来代替npm。

有缓存。

没有自己的仓库地址,使用的是npm仓库地址。

npm install yarn -g
  • 查看版本号
    yarn --version
  • 生成package.json !!!注意生成的包名不能有中文,大写
    yarn init
  • 全局安装
    yarn add global 包名
  • 局部安装
    yarn add 包名
  • 安装开发依赖
    yarn add 包名 --dev (相当于npm中的--save-dev)
  • 删除包
    yarn remove 包名
  • 列出已安装的包名
    yarn list 
  • 获取包的有关信息
    yarn info 包名
  • 下载package.json 中的所有包
    yarn 或 yarn install
配置源。yarn默认的源地址:https://registry.yarnpkg.com ,如果下载太慢,可以修改源 查看镜像源:yarn config get registry 绑定镜像源:yarn config set registry https://registry.npmmirror.com 删除镜像源(注意这里是 delete):yarn config delete registry

pnpm 全称 performant npm,意思为 高性能的 npm。pnpm 由 npm/yarn 衍生而来,被誉为 最先进的包管理工具。

相对 npm 优势

包安装速度极快; 磁盘空间利用非常高效。 pnpm 分三个阶段执行安装:

依赖解析。 仓库中没有的依赖都被识别并获取到仓库。 目录结构计算。 node_modules 目录结构是根据依赖计算出来的。 链接依赖项。 所有以前安装过的依赖项都会直接从仓库中获取并链接到 node_modules。

node尽量在18版本以上

npm install -g pnpm 全局安装pnpm
pnpm add sax     保存到 dependencies pnpm add -D sax   保存到 devDependencies pnpm add -O sax   保存到 optionalDependencies pnpm add -g sax   安装包到全局 ​
npm 命令pnpm 等价命令npm installpnpm install 安装全部依赖npm install 包名pnpm add (-D) 包名 安装指定包npm uninstall 包名pnpm remove 包名 移除指定包npm run 脚本pnpm 脚本 运行脚本

刪除包pnpm remove 别名是 rm, uninstall, un

pnpm config get registry   # 查看当前镜像源 pnpm config set registry https://registry.npmmirror.com   # 设置全局镜像源 npm install --registry https://registry.npmmirror.com     # 设置项目临时镜像源 ​

nrm 用于管理镜像,是一个可以切换npm镜像的管理工具。

npm i -g nrm 下载nrm nrm -V 查看nrm版本

nrm常见命令:

注:nrm ls中存储多个镜像文件路径,可以直接使用nrm use <name>切换镜像
到此这篇node管理系统(node包管理工具)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • point和node 区别(point和pointf)2025-03-01 10:36:08
  • node版本管理推荐工具(node版本管理推荐工具在哪)2025-03-01 10:36:08
  • 升级node到18(升级 node)2025-03-01 10:36:08
  • node-sass 安装失败(nodesass装不上)2025-03-01 10:36:08
  • point和node 区别(point和pointed)2025-03-01 10:36:08
  • node控制台(node控制台类型错误怎么解决)2025-03-01 10:36:08
  • node安装配置环境(node安装及环境配置)2025-03-01 10:36:08
  • 升级node命令(linux node升级)2025-03-01 10:36:08
  • 安装node.js命令(node.js安装配置)2025-03-01 10:36:08
  • node多版本管理(node版本管理工具nvm)2025-03-01 10:36:08
  • 全屏图片