前端工程化之包管理器

在这里插入图片描述

在这里插入图片描述

什么是包

● 包是一组特定功能的代码集合,英文为:package
● 包,本质上是一种文件系统的集成描述形式,属于模块化的一种超集体现。

包管理工具

集中式管理『包』的应用软件,可以对「包」进行 下载,安装 , 更新 , 删除 , 上传 等操作
借助包管理工具,可以快速开发项目,提升开发效率
包管理工具是一个通用的概念,很多编程语言都有包管理工具

常用的包管理工具

npm

在这里插入图片描述

npm 全称 Node Package Manager ,翻译为中文意思是『Node 的包管理工具』
npm 是 node.js 官方内置的包管理工具,是必须要掌握住的工具
node.js 在安装时会 自动安装 npm
可以通过 npm -v 查看版本号测试,如果显示版本号说明安装成功,反之安装失败

npm 基本使用

初始化
  • 创建一个空目录,然后以此目录作为工作目录 启动命令行工具 ,执行 npm init
  • npm init 命令的作用是将文件夹初始化为一个『包』, 交互式创建 package.json 文件
  • package.json 是包的配置文件,每个包都必须要有 package.json
  • package.json 内容示例:
{
"name": "1-npm", #包的名字
"version": "1.0.0", #包的版本
"description": "", #包的描述
"main": "index.js", #包的入口文件
"scripts": { #脚本配置
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "", #作者
"license": "ISC" #开源证书
}

在这里插入图片描述

搜索工具包
  1. 命令行 『npm s / search 包名』
  2. 网站搜索 网址是 https://www.npmjs.com/ 推荐
下载安装包

我们可以通过 npm installnpm i 命令安装包

如:

npm install uniq --save   或   npm i uniq -S

运行之后文件夹下会增加两个资源

  • node_modules 文件夹 存放下载的包

  • package-lock.json 包的锁文件 ,用来锁定包的版本

  • 关于package-lock.json 中的版本限制的说明:

    • ^:锁定主版本号,接受所有以1开头的版本,如:1.0.2等,但不包括2.0.0。
    • ~:允许安装小版本的更新,但不包括次要版本的更改。~1.0.1 允许 1.0.x。
    • >:允许比指定版本更高的版本,但不包括指定版本本身。>1.0.1 允许 1.0.2, 1.1.0, 2.0.0等。
    • <:允许比指定版本更低的版本。<1.0.1 允许 1.0.0 及更早的版本。
    • >=:允许指定版本及更高的版本。>=1.0.1 允许 1.0.1 及其之后的版本。
    • <=:允许指定版本及更低的版本。<=1.0.1 允许 1.0.1 及其之前的版本。
    • *:允许任何版本,这种情况下最不限制,但也最不稳定。
  • 如果没有任何符号,只写版本号,如 1.0.1,这意味着严格要求安装这个特定版本。


导入 npm 包基本流程
  1. 在当前文件夹下 node_modules 中寻找同名的文件夹
  2. 在上级目录中下的 node_modules 中寻找同名的文件夹,直至找到磁盘根目录

生产依赖与开发依赖

我们可以在安装时设置选项来区分 依赖的类型 ,目前分为两类:

类别命令描述说明
生产依赖npm i -S 包名

npm i --save 包名
-S 等效于 --save, -S 是默认选项
包信息保存在 package.json 中 dependencies 属性
开发环境、生产环境都要用的,是生产依赖包。
开发依赖npm i -D 包名

npm i --save-dev 包名
-D 等效于 --save-dev

包信息保存在 package.json 中 devDependencies 属性
只有开发环境用到的包,是开发依赖包。

全局安装

我们可以执行安装选项 -g 进行全局安装

npm install -g 包名
  • 全局安装的命令不受工作目录位置影响
  • 可以通过 npm root -g 可以查看全局安装包的位置
  • 通过 npm list -g 查看全局包的列表
  • 不是所有的包都适合全局安装,通常是命令行工具包,才适合全局安装。

安装全部依赖

在项目协作中有一个常用的命令就是 npm i ,通过该命令可以依据 package.jsonpackagelock.json 的依赖声明安装项目依赖
若只想安装生产依赖,可以使用npm install --prodnpm i --omit=dev

npm i
或
npm install

安装指定版本的包

项目中可能会遇到版本不匹配的情况,有时就需要安装指定版本的包,可以使用下面的命令的

## 格式
npm i <包名@版本号>

## 示例
npm i jquery@1.11.2

查看一个包的所有版本

npm view 包名 versions

删除依赖包
## 局部删除
npm remove 包名
npm r 包名
## 全局删除
npm remove -g 包名
npm r -g 包名

以上就是对包管理工具进行了一个初步的介绍,其余的几种包管理工具的核心,概念和使用方法都是大同小异,只要将 npm 掌握了,其它的也就很容易上手了。


cnpm

在这里插入图片描述
cnpm 是一个 npm 的替代工具,cnpm 服务器部署在国内,主要用于在国内优化 npm 包的下载速度,cnpm 由淘宝团队创建和维护,又称:淘宝镜像。

全局安装

  • 对于cnpm 的使用有两种方式:
    • 第一种方式:安装 cnpm 包管理器
 npm install cnpm -g --registry=https://registry.npmmirror.com

该种方式是全局安装了 cnpm 包,并且切换了包的下载源,以后全局用 cnpm 命令即可,cnpm兼容npm命令

  • 第二种方式:仅修改npm服务器地址
npm config set registry https://registry.npmmirror.com

该种方式只是修改了npm服务器地址,以后还是用npm命令
npm 原始远程服务器地址为 https://registry.npmjs.org/

查看下载服务器源地址

npm config get registry

nrm 的使用

nrm(NPM Registry Manager)是一个用于管理npm注册表的工具,方便用户在多个npm注册表之间切换。它适用于在不同的npm源之间快速切换

  • 安装
npm install nrm -g
  • 列出可用地址
nrm ls
  • 添加新地址
nrm add 别名 URL
  • 切换到指定地址
nrm use 别名
  • 测试各地址速度
nrm test
  • 删除地址
nrm del 别名

yarn

在这里插入图片描述
yarn是一个快速、可靠的依赖管理工具,由 Facebook 在 2016 年开发,yarn的优势如下:

  • 速度:yarn使用并行安装机制来加快速度。
  • 缓存:yarn会缓存每个下载过的包,无需重复下载。
  • 界面:yarn提供更详细的输出,包括进度条等等。
  • 安全:yarn会通过算法校验每个安装包的完整性。
  • yarn官网

备注:以上 yarn 的优势,目前最新的 npm 也都基本具备了。所以这些优势如今并不明显

全局安装

npm i yarn -g

备注安装 yarn 后,需要在系统全局配置环境变量

yarn 常用命令

yarn 命令功能描述对应 npm 命令
yarn init初始化包npm init
yarn -v查看版本号npm -v
yarn add 包名安装某个包npm install 包名
yarn add 包名 -D安装某个包(开发依赖)npm install 包名 -D
yarn global add 包名全局安装一个包npm install 包名 -g
yarn global dir查看全局安装位置npm root -g
yarn global list查看全局安装列表npm list -g
yarn install安装全部依赖npm install
yarn remove 包名删除包npm remove 包名
yarn run 别名运行命令别名npm run 别名

pnpm 【推荐使用】

在这里插入图片描述

pnpm(“performant npm”)是一个高效的包管理工具,与npm和yarn类似。它通过硬链接软链接共享依赖库,从而节省磁盘空间和加速安装过程。并且很好的解决了幻影依赖的问题

pnpm:官网
点击了解幻影依赖

全局安装

npm install pnpm -g

在这里插入图片描述


🚵‍♂️ 博主座右铭:向阳而生,我还在路上!
——————————————————————————————
🚴博主想说:将持续性为社区输出自己的资源,同时也见证自己的进步!
——————————————————————————————
🤼‍♂️ 如果都看到这了,博主希望留下你的足迹!【📂收藏!👍点赞!✍️评论!】
——————————————————————————————

  • 27
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: JavaScript 前端工程化是一种使用工具和流程来提高前端开发效率和质量的方法。它可以帮助我们管理项目构建、模块化、测试、部署等流程,使前端开发更加高效和可维护。 一些常用的前端工程化工具包括: - 包管理器:如 npmyarn,用于管理项目依赖的第三方库和工具。 - 构建工具:如 Webpack 或 Rollup,用于将源代码转换为浏览器可以运行的代码,并且可以做一些优化,如代码压缩、模块化、自动添加浏览器前缀等。 - 自动化测试工具:如 Jest、Mocha 或 Karma,用于自动执行单元测试和集成测试,保证代码的质量和稳定性。 - 部署工具:如 Git、Jenkins 等,用于将项目发布到线上环境。 前端工程化还可以通过使用规范和框架来提高代码质量和团队协作效率。例如,使用 lint 工具来检查代码规范,使用框架如 React、Vue 或 Angular 来组织代码结构。 总之,JavaScript 前端工程化是一种使用工具和流程来提高前端开发效率和质 ### 回答2: JavaScript 前端工程化是一种通过工具和实践来提高前端开发效率和质量的方法。它涉及到对代码、资源和工作流程的管理和优化,旨在满足在复杂的前端项目中面临的挑战。 首先,JavaScript 前端工程化通过模块化来组织和管理代码。使用模块化的方式可以将代码分割成独立的模块,各模块之间可以互相依赖和复用。这样可以提供更好的代码可维护性和复用性,同时也可以避免全局命名冲突和代码碎片化的问题。常用的模块化技术包括 ES6 的模块化语法和模块打包工具,如Webpack。 其次,JavaScript 前端工程化通过自动化构建工具来提高开发效率。通过使用构建工具,我们可以自动完成编译、压缩、合并等繁琐的操作,减少手动操作的时间和错误。常见的构建工具有Grunt、Gulp和Webpack,它们可以根据配置文件自动执行各种任务,并生成优化后的静态文件。 另外,JavaScript 前端工程化还涉及到代码规范和质量保证。通过使用代码规范工具如ESLint,并制定团队统一的代码规范,可以提高团队协作的效率,减少潜在的问题。同时,结合自动化测试工具如Jest、Mocha等,可以实现代码的自动化测试,确保代码质量和稳定性。 最后,JavaScript 前端工程化还可以提供更好的代码部署和发布机制。通过使用持续集成工具如Jenkins,可以自动部署代码到测试和生产环境,提高交付速度和稳定性。同时,还可以使用版本控制工具如Git,实现多人协作和代码版本管理。 总之,JavaScript 前端工程化通过模块化、自动化构建、代码规范和质量保证、代码部署等方式来提高前端开发效率和质量。在现代化的前端开发中,工程化已经成为不可或缺的组成部分,帮助开发者应对复杂的需求和挑战。 ### 回答3: JavaScript前端工程化是一种以提高开发效率、代码质量和项目可维护性为目标的开发方法。它借助工具和规范化的工作流程,帮助开发人员更好地组织、管理和部署JavaScript代码。 前端工程化的核心是模块化。通过使用模块化开发,前端代码可以按照功能进行划分,每个功能模块都拥有独立的代码和依赖关系,使得开发和维护变得更加容易。常用的模块化规范有CommonJS和ES6模块。 另一个关键概念是构建工具。构建工具可以帮助自动化完成一系列任务,如代码合并、压缩、转换、静态资源管理等。常用的构建工具有Webpack和Rollup。这些工具可以根据配置文件自动处理代码,减少手动操作,提高开发效率。 除此之外,前端工程化还包括自动化测试、性能优化和代码规范等方面。自动化测试可以帮助开发人员编写和运行测试用例,确保代码的正确性。性能优化可以通过压缩代码、懒加载和CDN加速等方式提高页面性能。代码规范则可以统一代码风格,提高代码的可读性和可维护性。 总的来说,JavaScript前端工程化是一种通过使用模块化、构建工具和自动化测试等方法,提高前端代码开发效率和质量的开发方法。它可以帮助开发人员更好地组织和管理代码,减少手动操作,提高开发效率和项目可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旧梦星轨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值