前端包管理工具 npm yarn cnpm npx(二)

简介: 前端包管理工具 npm yarn cnpm npx

配置文件中常见的属性


必须填写的属性 name,version

  • name是项目名称
  • version 是当前项目版本号
  • description 是描述信息,作为项目的补充说明
  • author 是作者,发布时会用到
  • license 是使用的开源协议,发布会用到

private 属性

  • 记录当前项目是否时私有的
  • 当只为true时,npm 不能发布它

main 属性

  • 设置程序的入口
  • 当前包的入口文件
  • 注意区别webpack入口文件的概念,不是一个东西。

script 属性

  • 常配置一些脚步命令
  • 如我们经常使用的 npm run start,npm run build
  • npm start 也等于 npm run start,start 命令可以省去

dependencies属性

  • 无论哪个环境都需要依赖的资源包
  • 如vue全家桶,axios

devDependencies属性

  • 本地开发环境需要依赖的资源包如webpack,babel
  • 安装命令为 npm install webpack --save-dev

engines属性

  • 用于指定node和npm 的版本号,有些包对node版本有最低要求
  • 当下载包的时候,会优先检查版本,如不符合就会安装依赖时报错

browserslist属性

  • 支持到哪个版本的浏览器,和babel 配置强相关,可暂时先不关心,等之后我们可以专题讨论babel这里的知识

依赖包版本管理


npm 包版本一般规范为为X.Y.Z

X 为主版本号 一般为大版本更新,可能不兼容之前的版本,如Vue2.0和Vue3.0

Y 为次版本号 一般为新增一恶搞功能,向下兼容,如Vue2.0和Vue2.x

Z 为修订版本号 一般是修复了小问题,小版本优化

我们常见的版本号形如这样

^x.y.z:表示x是保持不变的,y和z永远安装最新的版本;

~x.y.z:表示x和y保持不变的,z永远安装最新的版本;

依赖包安装


  • 安装分为全局安装和局部安装
  • 如npm yarn webpack 这样的包就适合全局安装
    npm install webpack -g
  • 如vue axios 这样项目中用的包就适合局部安装
  • 安装之后会在当前目录下生成一个node_modules文件夹

npm install原理


npm 在安装之后,不仅生成了node_modules,还多出了一个package-lock.json 来支持缓存策略像yarn 看齐,这个我们后面会说到

1686823670386.jpg

1686823682984.jpg

npm instll 原理图解


  • npm install会检测是有package-lock.json文件:
  • 没有package-lock.json文件
  • 分析依赖关系,这是因为我们可能包会依赖其他的包,并且多个包之间会产生相同依赖的情况;
  • 从registry仓库中下载压缩包(如果我们设置了镜像,那么会从镜像服务器下载压缩包);
  • 获取到压缩包后会对压缩包进行缓存(从npm5开始有的)
  • 将压缩包解压到项目的node_modules文件夹中
  • 有package-lock.json文件
  • 检测lock中包的版本是否和package.json中一致
  • 不一致,那么会重新构建依赖关系,直接会走上面的流程;
  • 一致的情况下,会去优先查找缓存
  • 缓存没有找到,从registry仓库下载,直接走上面流程;
  • 命中缓存会获取缓存中的压缩文件
  • 将压缩文件解压到node_modules文件夹中;

package-lock.json


1686823732261.jpg

  • ** package-lock.json文件解析**
  • name:项目的名称;
  • version:项目的版本;
  • lockfileVersion:lock文件的版本;
  • requires:使用requires来跟踪模块的依赖关系;
  • dependencies:项目的依赖
  • version表示实际安装的版本;
  • resolved用来记录下载的地址,registry仓库中的位置;
  • requires记录当前模块的依赖;
  • integrity用来从缓存中获取索引,再通过索引去获取压缩包文件

npm 其他常用命令


卸载某个依赖包:

  npm uninstall package
  npm uninstall package --save-dev
  npm uninstall package -D

强制重新build

npm rebuild


清除缓存

npm cache clean


相关文章
|
4天前
|
前端开发 Java 开发工具
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
|
3月前
|
JavaScript 前端开发 Java
npm学习一:npm 包管理工具 学习、使用。
这篇文章介绍了npm的基础知识和常用命令,包括安装包、查看包信息、管理依赖等操作,并提供了如何删除npm安装的镜像以及如何彻底删除node_modules文件夹的具体步骤。
125 2
|
12天前
|
存储 资源调度 JavaScript
npm、cnpm 和 pnpm 是三种常用的 Node.js 包管理工具
npm、cnpm 和 pnpm 是三种常用的 Node.js 包管理工具。npm 是官方默认的包管理器,提供依赖管理、安装和更新等功能;cnpm 是由阿里巴巴开发的 npm 镜像,专为中国大陆用户优化,解决下载速度慢的问题;pnpm 通过硬链接技术提高安装速度并节省磁盘空间,特别适合磁盘资源紧张的环境。三者命令类似,但各有特色,开发者可根据需求选择合适的工具。
62 5
|
1月前
|
存储 资源调度 JavaScript
一文带你了解PNPM以及 npm,yarn,pnpm区别
一文带你了解PNPM以及 npm,yarn,pnpm区别
|
3月前
|
JavaScript 前端开发 Java
npm学习一:npm 包管理工具 学习、使用。
这篇文章是关于npm包管理工具的学习、使用指南,包括npm概述、基础命令和如何安装webpack。
106 3
npm学习一:npm 包管理工具 学习、使用。
|
3月前
|
缓存 资源调度 前端开发
前端研发链路之包管理器
本文首发于微信公众号“前端徐徐”。作者徐徐将探讨前端研发链路中的包管理器,分析 Npm、Yarn 和 Pnpm 的特点与应用场景,帮助开发者选择最适合项目的包管理工具,提升开发效率和项目稳定性。文章涵盖包管理器的基本概念、解决的问题、组成部分及各工具的优缺点对比。
49 2
|
3月前
|
缓存 资源调度 JavaScript
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
123 0
|
3月前
|
资源调度 前端开发 安全
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
200 0
|
4月前
|
数据安全/隐私保护
发布一个npm包
发布一个npm包
139 2
|
5月前
|
前端开发 JavaScript 开发者

热门文章

最新文章

推荐镜像

更多