当前位置: 首页 > news >正文

济南卓远网站建设公司网络竞价

济南卓远网站建设公司,网络竞价,台湾出版的wordpress书籍,鄂州做网站文章目录 路径解析配置项 Path resolution别名 Alias条件解析 Conditionsconditions是如何工作的 结语 哈喽,大家好!我是「励志前端小黑哥」,我带着最新发布的文章又来了! 老规矩,小手动起来~点赞关注不迷路&#xff0…

文章目录

  • 路径解析配置项 Path resolution
    • 别名 Alias
    • 条件解析 Conditions
      • conditions是如何工作的
  • 结语

哈喽,大家好!我是「励志前端小黑哥」,我带着最新发布的文章又来了!

老规矩,小手动起来~点赞关注不迷路!

esbuild简单介绍

esbuild为了突破了JavaScript语言的瓶颈,采用了Go语言编写,构建速度与同代码量下的webpack对比提升在10倍以上,开创了构建工具性能的新时代。

它的中文文档,本人正在不断的更新完善中,欢迎大家关注阅读!

路径解析配置项 Path resolution

别名 Alias

Supported by: Build

此功能允许您在打包时用一个包替换另一个包。以下示例将包oldpkg替换为包newpkg

esbuild app.js --bundle --alias:oldpkg=newpkg

这些替换首先会发生在esbuild所有的路径解析逻辑之前。此功能的一个使用场景是使用浏览器兼容包替换仅Node环境可使用的包,从而替换那些您无法控制的第三方代码,。

请注意,当使用Alias替换导入路径时,生成的导入路径将在工作目录中解析,而不是在包含具有导入路径的源文件的目录中解析。如果需要,可以使用Working directory功能设置esbuild所使用的工作目录。

条件解析 Conditions

Supported by: Build

此功能控制如何解析package.json中的exports字段。可以使用conditions设置添加自定义条件。您可以根据需要指定任意多个条件,这完全取决于包的作者。Node目前只推荐使用developmentproduction的自定义条件。以下是添加自定义条件custom1custom2的示例:

esbuild src/app.js --bundle --conditions=custom1,custom2

conditions是如何工作的

contitions允许您在不同的情况下将相同的import路径重定向到不同的文件位置。包含条件和路径的重定向Map存储在包的package.json文件的exports字段中。例如,下面这个例子将使用importrequired条件将require('pkg/foo')重新映射到pkg/required.cjs,并将import 'pkg/foo'导入映射到pkg/imported.mjs

{"name": "pkg","exports": {"./foo": {"import": "./imported.mjs","require": "./required.cjs","default": "./fallback.js"}}
}

conditions配置按照它们在JSON文件中出现的顺序进行检查。所以上面的例子有点像下面这个流程:

if (importPath === './foo') {if (conditions.has('import')) return './imported.mjs'if (conditions.has('require')) return './required.cjs'return './fallback.js'
}

默认情况下,有五种具有特殊含义的条件内置到esbuild中,并且不能禁用:

  • default

这种情况始终处于激活状态。它旨在排在最后,并允许您在没有其他条件适用时提供后备方案。当您在node中以本地方式运行代码时,此条件也处于活动状态。

  • import

只有当导入路径来自ESMimport语句或import()表达式时,此条件才处于活动状态。它可用于提供ESM特定的代码。当您在node中以本地方式运行代码时(但仅在ESM上下文中),此条件也处于活动状态。

  • require

只有当导入路径来自CommonJSrequire()调用时,此条件才处于活动状态。它可以用来提供CommonJS特定的代码。当您在node中以本地方式运行代码时(但仅在CommonJS上下文中),此条件也是活动的。

  • browser

只有当esbuildplatform参数设置为browser时,此条件才处于活动状态。它可以用于提供特定于浏览器的代码。当您在node中以本地方式运行代码时,此条件不处于活动状态。

  • node

只有当esbuildplatform参数设置为node时,此条件才处于活动状态。它可以用于提供特定的nodejs代码。当您在node中以本地方式运行代码时,此条件也处于活动状态。

platform设置为browsernode且未配置自定义条件时,还会自动包含以下条件。如果配置了任何自定义条件(甚至是空列表),则此条件将不再自动包含:

  • module

此条件可用于告诉esbuild为给定的import路径选择合适的ESM变体,以便在打包时提供更好的树抖动tree shaking。当您在node中以本地方式运行代码时,此条件不处于活动状态。它是esbuild打包器特有的,灵感来源源于Webpack

请注意,当您使用requireimport条件时,您的包可能会多次出现在打包文件中!这是一个小问题,除了导致打包文件膨胀之外,可能会由于代码状态的重复副本而导致错误。这通常被称为双包危害。

避免双包危害的一种方法是将所有代码作为CommonJS放入require条件中,并使导入条件仅为一个简单的ESM包装器,该包装器在包上调用require,并使用ESM语法重新导出包。然而,这种方法不能提供良好的树抖动,因为esbuild不会对CommonJS模块进行树抖动。

避免双包危害的另一种方法是使用打包器特定的module条件来指导打包器始终加载包的ESM版本,同时让node始终回退到包的CommonJS版本。importmodule都用于ESM,但与import不同的是,即使使用require调用加载了import路径,module条件也始终处于活动状态。这在打包器中很好地工作,因为打包器支持使用require加载ESM,但它不能与node一起工作,因为node故意不使用require实现加载ESM

结语

笔者根据esbuild文档搭建了一套简洁的ts开发脚手架工程,编译速度非常快!脚手架还整合了eslint,另一篇文章还附带了调试教程,需要的朋友看这里:esbuild配合vscode搭建的ts开发环境,这编译速度,真香

另外,esbuild中文文档专栏,本人目前正在翻译整理,关注我,有最新的翻译文档会第一时间通知你!

(本文完)

励志前端小黑哥,全网唯一账号!
关注我,带你了解更多前端知识!

http://www.hengruixuexiao.com/news/42049.html

相关文章:

  • 网站国际网络备案号制作网站推广
  • 做推广的网站微信号热搜榜排名今日事件
  • 做网站如何与腾讯合作怎么找需要推广的商家
  • 网站优化排名易下拉系统站点
  • wordpress 影视源码seo免费
  • 知名网站建设是哪家便宜 百度一下
  • 门户网站开发建设技术最近的新闻摘抄
  • 成品网站和模板建站营销策略4p
  • 做网站的服务器陕西seo推广
  • 怎么做网站注册的网页北京seo相关
  • 怎么创网站赚钱贵阳网站建设推广
  • 谷歌站群系统搜索引擎调价平台哪个好
  • 做网站必须要推广吗seo网站优化专员
  • 网站开发与设计入门杭州搜索引擎排名
  • 苏州高端网站建设设计公司哪家好南宁推广公司
  • 做网站 域名 网站 空间百度搜索app
  • 厦门网站建设哪家便宜游戏推广
  • 建设京东类的网站需要什么流程产品推广运营的公司
  • 网站域名费用多少钱一年竞价托管多少钱
  • 监控公司建设网站推广经营范围地推任务网
  • 设计一个产品好看的seo网站
  • 网站制作运营长沙seo排名外包
  • 正品购物平台seo公司排名教程
  • 免费企业网站系统常用的关键词优化策略有哪些
  • 网站开发学习方法2022年seo还值得做吗
  • 网站建设六道seo常规优化
  • 有特色的企业网站广告加盟
  • 深圳沙井做网站优化系统的软件
  • 网站制作完成后为了提交百度一下
  • 如何查询网站域名微软优化大师