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

js:Browserslist用特定语句查询浏览器列表的工具与Babel和Postcss配置使用

目录

    • Browserslist
    • Babel 和 Browserslist
    • Postcss 和 Browserslist
    • 推荐配置
    • 参考文章

Browserslist

Browserslist 是一个用特定语句查询浏览器列表的工具

文档

  • https://www.npmjs.com/package/browserslist
  • https://github.com/browserslist/browserslist#full-list

安装

pnpm install --save-dev browserslist

使用示例

$ npx browserslist "last 2 Chrome versions" chrome 119
chrome 118

Babel 和 Browserslist

文档

  • https://babeljs.io/

有如下代码,需要通过babel转译为兼容浏览器的代码

src/index.js

const say = (msg) => {console.log(msg);
};
say("hello");

安装 babel依赖

pnpm install --save-dev @babel/core @babel/cli @babel/preset-env

在 package.json 中配置babel

{"babel": {"presets": ["@babel/preset-env"]}
}

运行

$ npx babel ./src/index.js --out-dir dist

输出

"use strict";var say = function say(msg) {console.log(msg);
};
say("hello");

在 package.json 中增加browserslist 配置

{"babel": {"presets": ["@babel/preset-env"]},"browserslist": ["chrome 119"]
}

运行

$ npx babel ./src/index.js --out-dir dist

输出

"use strict";const say = msg => {console.log(msg);
};
say("hello");

比对两次输出,将浏览器兼容范围减小后,代码直接就是箭头函数

Postcss 和 Browserslist

使用postcss自动添加css的浏览器前缀

文档

  • https://github.com/postcss/postcss-load-config
  • https://github.com/postcss/postcss-cli

安装

$ pnpm i -D postcss postcss-cli autoprefixer

在 package.json 中 配置 postcss

{"postcss": {"map": false,"plugins": {"autoprefixer": {}}}
}

src/style.css

.box {box-sizing: border-box;
}

不配置browserslist的情况下

运行命令

$ npx postcss ./src/style.css -o dist/style.css

生成

.box {box-sizing: border-box;
}

package.json 配置browserslist

{"browserslist": ["cover 99.5%"],
}

运行命令

$ npx postcss ./src/style.css -o dist/style.css

输出

.box {-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;
}

推荐配置

Browserslist 将依赖BROWSERSLIST_ENV 或者 NODE_ENV

{"browserslist": {"production": ["> 1%","last 2 version"],"development": ["last 1 chrome version","last 1 firefox version"]}
}
  • > 1% 全球市场占有率大于 1% 的浏览器
  • last 2 version 所有浏览器的最后 2 个版本
  • last 1 chrome version 查找 Chrome 浏览器的最后 1 个版本

完整配置 package.json

{"type": "module","dependencies": {},"devDependencies": {"browserslist": "^4.22.1","@babel/cli": "^7.23.0","@babel/core": "^7.23.2","@babel/preset-env": "^7.23.2","autoprefixer": "^10.4.16","postcss": "^8.4.31","postcss-cli": "^10.1.0","postcss-preset-env": "^9.3.0"},"browserslist": {"production": ["> 1%","last 2 version"],"development": ["last 1 chrome version","last 1 firefox version"]},"babel": {"presets": ["@babel/preset-env"]},"postcss": {"map": false,"plugins": {"autoprefixer": {}}}
}

参考文章

  • browserslist 是什么?看这篇就够了
  • 前端工程基础知识点–Browserslist (基于官方文档翻译)

相关文章:

js:Browserslist用特定语句查询浏览器列表的工具与Babel和Postcss配置使用

目录 BrowserslistBabel 和 BrowserslistPostcss 和 Browserslist推荐配置参考文章 Browserslist Browserslist 是一个用特定语句查询浏览器列表的工具 文档 https://www.npmjs.com/package/browserslisthttps://github.com/browserslist/browserslist#full-list 安装 pnp…...

odoo16前端框架源码阅读——boot.js

odoo16前端框架源码阅读——boot.js 从名字就能看出来,这个文件是一个启动文件。 odoo前端将所有的js打包成了两个文件,一个是common.js,另一个是backend.js, 而common.js 是最先加载的 在common.js打包的js文件中最先加载的是下面的文件,看…...

使用MybatisPlus时出现的java.lang.NullPointerException异常~

错误描述如下所示: 错误原因:Junit的导包错误 单元测试的包有如下所示两个 我们应该根据springboot的版本进行选择, 在Spring Boot 2.2.X以后使用import org.junit.jupiter.api.Test Junit5 在Spring Boot 2.2.x之前使用import org.junit.T…...

27 微服务配置拉取

1&#xff09;引入nacos-config依赖 首先&#xff0c;在user-service服务中&#xff0c;引入nacos-config的客户端依赖&#xff1a; <!--nacos配置管理依赖--> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-sta…...

hutool ExcelUtil导出excel二级表头

简介&#xff1a;Hutool是一款十分好用的开发工具集&#xff0c;里面包含了大部分日常开发常用的工具&#xff0c;使用简单方便&#xff0c;可以大大提升日常开发效率&#xff0c;十分推荐大家使用。这里简单总结一下基于Hutool的Excel使用。 一、Hutool依赖 <!-- Excel导出…...

《开箱元宇宙》:认识香港麦当劳通过 The Sandbox McNuggets Land 的 Web3 成功经验

McNuggets Land 是 The Sandbox 于 2023 年发布的最受欢迎的体验之一。在本期的《开箱元宇宙》系列中&#xff0c;我们采访了香港麦当劳数位顾客体验暨合作伙伴资深总监 Kai Tsang&#xff0c;来了解这一成功案例背后的策略。 在不断发展的市场营销和品牌推广领域&#xff0c;不…...

基于python+TensorFlow+Django卷积网络算法+深度学习模型+蔬菜识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 介绍了TensorFlow在图像识别分类中的应用&#xff0c;并通过相关代码进行了讲解。通过TensorFlow提供的工具和库&am…...

Python异常处理:三种不同方法的探索与最佳实践

Python异常处理&#xff1a;三种不同方法的探索与最佳实践 前言 本文旨在探讨Python中三种不同的异常处理方法。通过深入理解各种异常处理策略&#xff0c;我们可以更好地应对不同的编程场景&#xff0c;选择最适合自己需求的方法。 异常处理在编程中扮演着至关重要的角色。合…...

一文图解爬虫(spider)

—引导语 互联网&#xff08;Internet&#xff09;进化到今天&#xff0c;已然成为爬虫&#xff08;Spider&#xff09;编制的天下。从个体升级为组合、从组合联结为网络。因为有爬虫&#xff0c;我们可以更迅速地触达新鲜“网事”。 那么爬虫究竟如何工作的呢&#xff1f;允许…...

腾讯云3年期轻量应用服务器优惠(薅羊毛教程)

腾讯云轻量应用服务器特价是有新用户限制的&#xff0c;所以阿腾云建议大家选择3年期轻量应用服务器&#xff0c;一劳永逸&#xff0c;免去续费困扰。腾讯云轻量应用服务器3年优惠可以选择2核2G4M和2核4G5M带宽&#xff0c;3年轻量2核2G4M服务器540元&#xff0c;2核4G5M轻量应…...

多个div横向排列的几种方法

以下面这组 div 为例&#xff0c;group的高度由内容撑开 <div id"group"><div id"div1">div1</div><div id"div2">div2</div><div id"div3">div3</div> </div>显示结果如下为上下排…...

【编程语言发展史】Go语言的发展历史

目录 Go的起源 Go语言发展时间轴 logo Go的起源 Go 语言起源 2007 年&#xff0c;并于 2009 年正式对外发布。它从 2009 年 9 月 21 日开始作为谷歌公司 20% 兼职项目&#xff0c;即相关员工利用 20% 的空余时间来参与 Go 语言的研发工作。该项目的三位领导者均是著名的 …...

深入理解JVM虚拟机第二十三篇:详解JVM当中的栈顶缓存技术

大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻JVM 本文章简介:话不多说,让我们讲清楚JVM当中与操作数栈相关的字节码指令…...

通过easyexcel导出数据到表格

这篇文章简单介绍一下怎么通过easyexcel做数据的导出&#xff0c;使用之前easyui构建的歌曲列表crud应用&#xff0c;添加一个导出按钮&#xff0c;点击的时候直接连接后端接口地址&#xff0c;在后端的接口完成数据的导出功能。 前端页面完整代码 let editingId; let request…...

C++入门学习(4)引用 (讲解拿指针比较)

上期回顾 在学习完函数重载之后&#xff0c;我们可以使用多个重名函数进行操作&#xff0c;会发现C真的是弥补了好多C语言的不足之处&#xff0c;真的不禁感概一下&#xff0c;时代的进步是需要人去做出改变的&#xff0c;而不是一味的使用啊&#xff01;所以我们今天继续学一下…...

温度采集DS18B20

/******************************************************************** * 描述 : 该文件实现了用温度传感器件DS18B20对温度的采集&#xff0c;并在数码管上显示出来。 ***********************************************************************/ #include<reg52.h&…...

同城跑腿服务预约小程序的作用如何

无论是互联网服务化加快还是前几年疫情冲击&#xff0c;在同城生活服务场景中出现了很多商机&#xff0c;如外卖跑腿、校园跑腿、代买代送等&#xff0c;无论公司还是个人都借势不断提升自己品牌的影响力&#xff0c;并且依赖朋友圈不断提升生意营收。 同城跑腿品牌不少&#…...

前后端开发迭代

要创建一个具有登录和注册功能的前端网页&#xff0c;并使用Go语言编写后端来支持它&#xff0c;你需要分两部分来进行&#xff1a;前端开发和后端开发。下面我将提供一个基本的指导方案。 前端开发 前端部分主要涉及HTML、CSS和JavaScript。你可以使用框架如React或Vue来简化…...

Git可视化界面的操作,SSH协议的以及IDEA集成Git

目录 一. Git可视化界面的操作 二. gitee的ssh key 2.1 SSH协议 2.2 ssh key 三. IDEA集成Git 3.1 分享项目 3.2 下载项目 一. Git可视化界面的操作 上一篇博客只用到了git的命令窗口&#xff0c;现在就来看看可视化窗口要怎么操作。 点击Git GUI Here GUI界面 在g…...

CSS的初步学习

CSS 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结 构分离. CSS 就是 “东方四大邪术” 之化妆术 CSS 基本语法规范: 选择器 若干属性声明 选择器决定针对谁修改 (找谁) 声明决定修…...

FPGA时序约束进阶:Set_Bus_Skew在跨时钟域设计中的实战解析

1. 什么是Set_Bus_Skew约束&#xff1f; 第一次在跨时钟域设计中遇到总线偏斜问题时&#xff0c;我盯着时序报告里那些莫名其妙的违例数字整整发呆了半小时。作为FPGA工程师&#xff0c;你可能已经熟悉了常规的setup/hold检查&#xff0c;但当多个信号需要同步跨时钟域传输时&a…...

如何在画中画(PiP)模式下动态切换视频源

本文详解如何在不退出画中画模式的前提下&#xff0c;实时切换 PiP 窗口中播放的视频流——核心方法是直接更新 <video> 元素的 srcObject&#xff0c;并针对 Chrome/Safari 与 Firefox 的兼容性差异提供可落地的工程化方案。 本文详解如何在不退出画中画模式的前提…...

【Linux命令饲养指南】01-Linux命令三巨头:pwd、cd、ls,看完这篇你就会了!(附带目录结构大揭秘)

hello 各位老铁&#xff0c;又是学习新知识的时候啦&#x1f60a; 咱们刚接触Linux&#xff0c;看着黑乎乎的终端一脸懵&#xff1f;别慌&#xff0c;今天我们用大白话去搞定最常用的命令和Linux的目录结构。本文为个人原创学习整理&#xff0c;AI 仅辅助排版与润色一、Linux的…...

Rustup进阶指南:5个高效管理Rust工具链的实战技巧

Rustup进阶指南&#xff1a;5个高效管理Rust工具链的实战技巧 【免费下载链接】rustup The Rust toolchain installer 项目地址: https://gitcode.com/gh_mirrors/ru/rustup Rustup作为Rust官方工具链安装器&#xff0c;让开发者能够轻松管理多个Rust版本、切换发布渠道…...

【AIAgent情感计算模块设计白皮书】:20年实战提炼的7层情感建模框架与工业级落地避坑指南

第一章&#xff1a;AIAgent情感计算模块的定位与核心价值 2026奇点智能技术大会(https://ml-summit.org) AIAgent情感计算模块并非传统NLP流水线中的可选插件&#xff0c;而是面向人机共生场景构建的认知底座——它将情绪状态建模为可量化、可干预、可协同的动态信号&#xff…...

如何优化SQL视图执行计划_强制转换与索引提示应用

CONVERT 和 CAST 在 WHERE 条件中对索引列进行类型转换会导致索引失效&#xff0c;引发 Table Scan 或 Index Scan&#xff1b;应避免在列上转换&#xff0c;改为在参数侧转换或使用范围查询。SQL Server 中 CONVERT 和 CAST 导致索引失效的典型表现视图查询突然变慢&#xff0…...

Qt Design Studio新手避坑指南:从BASIC到Controls,这11个组件属性别再乱用了

Qt Design Studio新手避坑指南&#xff1a;从BASIC到Controls&#xff0c;这11个组件属性别再乱用了 刚接触Qt Design Studio的开发者常会被其丰富的组件库和灵活的QML语法吸引&#xff0c;但随之而来的是属性配置的"选择困难症"。不同于传统Qt Widgets开发&#xff…...

代码之外周刊(第期):当技术让一切趋同,我们还剩什么?崩

1. 前言 本文详细介绍如何使用 kylin v10 iso 文件构建出 docker image&#xff0c;docker 版本为 20.10.7。 2. 构建 yum 离线源 2.1. 挂载 ISO 文件 mount Kylin-Server-V10-GFB-Release-030-ARM64.iso /media 2.2. 添加离线 repo 文件 在/etc/yum.repos.d/下创建kylin-local…...

VSCode Cortex-M 调试进阶:从基础断点到国产芯片适配

1. VSCode Cortex-M调试环境搭建 对于嵌入式开发者来说&#xff0c;VSCode已经成为一个不可或缺的开发工具。相比传统的Keil、IAR等IDE&#xff0c;VSCode凭借其轻量级、可扩展性强等优势&#xff0c;正在被越来越多的工程师采用。特别是在国产芯片开发领域&#xff0c;VSCode的…...

AIAgent不是升级ADAS,而是重构OS——奇点大会首发车载智能体中间件架构(含GitHub私有仓申请通道)

第一章&#xff1a;AIAgent不是升级ADAS&#xff0c;而是重构OS——奇点大会首发车载智能体中间件架构&#xff08;含GitHub私有仓申请通道&#xff09; 2026奇点智能技术大会(https://ml-summit.org) 传统ADAS系统以规则驱动、功能割裂、响应延迟为特征&#xff0c;而AIAgen…...