前端包管理工具

这篇具有很好参考价值的文章主要介绍了前端包管理工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、代码共享方案

  • npm 进行发布上传 npmregistry
  • npm 进行安装

二、npm 包管理工具

2.1 介绍

  • 安装 node 的时候自动安装

  • node package manager:Node 包管理工具

  • 可以通过 npm 安装说明已经上传到这个仓库里面了

  • npm 官网查看是否有发布:npmjs.org

2.2 npm的配置文件

  • package.json
  • 记录着项目的名称、版本号、项目描述
  • 项目所依赖的其他库的
  • npm init:自动生成 package.json
  • 手动从零开始创建项目:npm init -y:所有东西都是yes
  • 通过脚手架创建项目:vue create shopping:会搭建好这个项目所需要配置的东西,包括 package.json

2.3 常见的属性

  • name:项目的名称

  • version:项目版本

  • description:描述

  • author:作者

  • license:开源协议

  • private:true

    • npm不能发布它,防止私有项目或模块发布出去的方式
    • main属性:设置程序的入口
  • script:配置脚本命令npm run xxx

  • start、test、stop、restart可以省略run

  • dependencies:开发和生产环境都需要依赖的包:npm i axios

  • devDependencies开发依赖,有一些包在生成环境是不需要的,比如webpack、babel、vue-loader

  • 这个时候通过npm install webpack --save-dev安装到devDependencies属性中

    • 简写:npm install webpack -D
  • peerDependencies:对等依赖,你依赖的一个包,它必须是以另外一个宿主包为前提的

    • element-plus:必须安装vue
  • engines:指定 Node 和NPM 的版本号

  • browserslist:浏览器兼容情况

2.4 semver版本规范

  • X.Y.Z
  • X:主版本号,可能不兼容之前的版本,发生了重大版本更新
    • vue3 不兼容 vue2 版本的一些 api
  • Y:次版本号,增加了新特性和新功能,但是兼容之前的版本
  • Z:修订号,没有新功能,修正了之前的bug
  • x.y.z:明确的版本号
  • ^x.y.z:x 是保持不变的,y 和 z 永远安装最新的版本,后面两者动态
  • ~x.y.z:x 和y 是保持不变的, z 永远安装最新的版本

2.5 npm install 命令

  • 本地/局部安装:在哪个文件夹就安装到哪个文件夹里面,不会添加到环境变量里面

    • 会在当前目录下生成一个node_modules文件夹
    • 又分为
      • 开发依赖: -D
      • 生产依赖
  • 全局安装:npm i webpack -g

    • 必须依赖 webpack-cli -g
    • 一般安装的都是工具包:yarn、webpack
  • 原理

    • 从 远程registry 中进行下载
    • 若本地两个仓库都有 axios
    • 存在缓存的概念,通过算法去找对应的包==》标识符(integrity)
      • package-lock.json
    • package-lock.json:确定死的版本,一般不修改
      • name:项目的名称
      • version:项目的版本
      • lockfileVersion:lock文件的版本
      • requires:使用requires来跟踪模块的依赖关系
      • dependencies:项目的依赖
  • 卸载某个包:npm uninstall webpack npm ininstall axios -D

  • 强制重新build:npm rebuild

  • 清除缓存:npm cache clean

2.6 npm 发布自己的开发包

  • 编写自己的工具/库/框架
  • 必须包含 package.json
  • 除了在github也可以发布在registry
  • 步骤
    • 注册npm账号 https://www.npmjs.com
    • 在vscode里面登录:npm login
    • 修改 package.json
    • 发布到 npm registry上:npm publish
    • 更新仓库
      • 修改版本号:最好符合 semver 规范
      • 重新发布
    • 删除发布的包:npm unpublish
    • 让发布的包过期:npm deprecate

三、 yarn 工具

  • 早期的 npm 存在安装依赖速度缓慢、版本依赖混乱等问题

  • npm5 之后进行很多升级和改进

  • npm i yarn -g

  • 初始化:yarn init

  • 安装包:yarn add axios

  • 与npm 区别

四、cnpm工具

  • registry 是国外的服务器
  • 淘宝的镜像服务器十分钟更新一次,进行备份
  • 查看npm镜像:npm config get registry
  • 设置npm的镜像:npm config set registry=https://registry.npm.taobao.org
  • 安装一个新的工具:npm install cnpm -g
  • 设置cnpm的镜像:cnpm config set registry=https://registry.npm.taobao.org

五、npx工具

  • npx是 npm5.2之后自带的一个命令

  • 在安装项目之前,先创建package.json

    • 手动创建:npm init -y
    • npm i webpack-cli -D(开发依赖,打包)
    • 在里面script执行命令,优先在modules的bin里面找
    • 全局安装webpack:npm i webpack@3.6.0 -g
  • 使用 npx 直接(优先)在node_modules下面的bin文件中优先查找

    • webpack 对源代码进行打包
    • 默认情况下运行全局的
  • 局部命令的执行

    • 必须进入到目录,在终端使用如下命令 ./node_modules/.bin/webpack --version
    • 修改scripts脚本:“webpack”: “webpack --version”
    • 使用npx:npx webpack --version

六、pnpm 使用和原理

  • performant 高性能的 npm

    • 快速/高效/严格/支持 monorepos /严格
    • 速度快、节省磁盘空间
  • vue 源码已经开始使用 pnpm 了

  • 使用的公司:Microsoft、ByteDance

  • 依赖包将被存放在一个统一的位置

    • 同一依赖包使用相同的版本,磁盘上只有依赖包这一份文件
    • 同一依赖包需要使用不同的版本,仅有版本之间不同的文件会被存储起来
    • 所有文件都保存在硬盘上的统一的位置
      • 建立硬链接,不会占用额外的硬盘空间
  • pnpm 创建非扁平的 node_modules目录873

  • 安装npm install pnpm -g

  • 当使用npm或yarn安装依赖包时,所有软件包都将被提升到node_modules的根目录下
    a. 源码可以访问本不属于当前项目所设定的依赖包

  • 通过硬链接和软连接的方式连接起来

  • 整个结构嵌套的层级有点多,不会随便引入非自己安装的依赖pnpm的存储store

  • 获取对应目录:pnpm store path

  • 从store中删除当前未被引用的包来释放store的空间:pnpm store prune文章来源地址https://www.toymoban.com/news/detail-820302.html

七、硬链接/软连接

  • 硬链接:电脑文件系统中的多个文件平等地享有同一个文件存储单元
  • 符号链接:一种特殊的文件,包含有一条绝对/相对路径指向其他文件或者目录的引用
  • copy aaa.js ffff.js----------文件拷贝
    • 会在硬盘中复制出来一份新的文件数据
  • mklink /H bbb.js aaa.js----------建立了硬链接
    • bbb.js : 新文件
    • aaa.js:原文件
    • 指向了磁盘中的同一份数据
    • 只能操作文件
  • mklink aaa.js hhh.js-------建立软连接
    • 快捷方式
    • 找到原文件
    • 再找到磁盘中的数据

到了这里,关于前端包管理工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 前端 node 常见的包管理工具 npm、npx、Yarn、cnpm、pnpm 的区别有哪些

    些工具都是用于管理 Node.js 包和依赖项的 npm (Node Package Manager) : npm 是 Node.js 的默认包管理工具,随同 Node.js 安装。 主要功能包括安装、发布、管理 JavaScript 包和依赖项。 npm 是最常用的包管理工具之一,拥有庞大的包仓库(npm Registry)。 npx : npx 是 npm 5.2.0 版本引入的一个工

    2024年02月20日
    浏览(9)
  • 前端面试:【前端工程化】构建工具Webpack、Parcel和Rollup

    嗨,亲爱的前端开发者!在现代Web开发中,前端工程化变得愈发重要。构建工具如Webpack、Parcel和Rollup帮助我们自动化任务、管理依赖、优化性能等。本文将深入探讨这三个前端构建工具,帮助你了解它们的优点和用途。 1. Webpack: 用途: Webpack是一个强大的模块打包工具。它

    2024年02月11日
    浏览(30)
  • 探索现代前端工程化工具与流程:提升开发效率和项目质量

    探索现代前端工程化工具与流程:提升开发效率和项目质量

    前端工程化是指利用各种工具和技术来提高前端开发效率、代码质量和团队协作的一种开发模式。 它的背景和发展与前端技术的演进密切相关。 在过去,前端开发主要依靠手工编写 HTML、CSS和JavaScript 来构建网页。随着互联网的发展和前端技术的不断演进,前端的工作变得更

    2024年02月14日
    浏览(30)
  • 包管理工具:npm、yarn、cnpm、npx、pnpm

    包管理工具:npm、yarn、cnpm、npx、pnpm

     yarn是由Facebook(react)、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具;  yarn 是为了弥补早期npm 的一些缺陷而出现的;  早期的npm存在很多的缺陷,比如安装依赖速度很慢、版本依赖混乱等等一系列的问题;  虽然从npm5版本开始,进行了很多的升级和改进,

    2024年02月15日
    浏览(17)
  • 前端工程化详解——理解与实践前端工程化

    前端工程化详解——理解与实践前端工程化

    前言: 前端工程化一直是一个老生常谈的问题,不管是面试还是我们在公司做基建都会经常提到前端工程化,那么为什么经常会说到前端工程化,并没有听过后端工程化、Java工程化或者Python工程化呢?我们理解的前端工程化是不是一直都是Webpack的性能调优,或者是一个cli工

    2024年02月02日
    浏览(32)
  • 包管理工具详解npm、yarn、cnpm、npx、pnpm

    包管理工具详解npm、yarn、cnpm、npx、pnpm

    目录: 1 npm包管理工具 2 package配置文件 3 npm install原理 4 yarn、cnpm、npx 5 发布自己的开发包 6 pnpm使用和原理 当我们使用npm install xxxx 的时候会添加一个node_module和2个json文件:        这个配置文件会记录着你 项目的名称 、 版本号 、 项目描述 等;  也会记录着你 项目所

    2024年02月06日
    浏览(9)
  • 包管理工具详解npm 、 yarn 、 cnpm 、 npx 、 pnpm(2023)

    包管理工具详解npm 、 yarn 、 cnpm 、 npx 、 pnpm(2023)

    Node Package Manager,也就是Node包管理器; 但是目前已经不仅仅是Node包管理器了,在前端项目中我们也在使用它来管理依赖的包; 比如vue、vue-router、vuex、express、koa、react、react-dom、axios、babel、webpack等等; npm属于node的一个管理工具,所以我们需要先安装Node; node管理工具:

    2024年02月13日
    浏览(11)
  • 你真的知道 NPM、Yarn 与 PNPM 这三个前端包管理器之间的区别吗?

    你真的知道 NPM、Yarn 与 PNPM 这三个前端包管理器之间的区别吗?

    在当代的Web开发过程中,JavaScript项目的构建离不开各种外部依赖,无论是实用的库、辅助工具还是其他类型的资源。这些依赖项的管理,已经成为了开发者日常不可或缺的一部分。NPM、Yarn和PNPM这三个包管理器,就像是开发者的得力助手,它们在项目开发中扮演着至关重要的

    2024年04月13日
    浏览(7)
  • 包管理工具 nvm npm nrm yarn cnpm npx pnpm详解

    包管理工具 nvm npm nrm yarn cnpm npx pnpm详解

    npm、cnpm、yarn、pnpm、npx、nvm的区别:https://blog.csdn.net/weixin_53791978/article/details/122533843 npm、cnpm、yarn、pnpm、npx、nvm的区别:https://blog.csdn.net/weixin_53791978/article/details/122533843 包管理工具:npm、npx、yarn、cnpm、pnpm:https://blog.csdn.net/March_Q__/article/details/126675476 包管理工具详解npm 、

    2024年02月12日
    浏览(19)
  • 包管理工具那么多,怎么选?npm、yarn 和 pnpm 三者比较及使用详解!

    在 Vue 项目中,我们需要使用许多第三方依赖库,如 Vue Router、Vuex、Axios、Element UI 等等。这些依赖库通常以 NPM 包的形式提供,而且在使用时需要进行版本管理。因此,我们需要使用一个包管理工具来统一管理这些依赖库,避免版本冲突和管理繁琐。 常见的 Vue 项目包管理工

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包