笔者近期在将前端架构 webpack 升级到 5 时,一些配套模块也需要进行升级,其中包括了 css 处理模块 PostCSS。旧版本使用的是 PostCSS 7,在升级至 PostCSS 8 的过程中,笔者发现部分插件前置依赖还是停留在 7 版本,且年久失修,在 PostCSS 8 中出现各种各样的问题,无奈只能研究源码,将目前部分旧版本插件升级至新版本。这里,笔者将升级插件的过程进行简化和提炼,让读者自己也可以编写一个 PostCSS 8 插件。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
JavaScript转换样式的工具。让css样式适配不同的浏览器(不用自己去手动的添加了)。
什么是属性前缀 为了浏览器的兼容性,有时候我们必须加入-webkit,-ms,-o,-moz这些前缀。目的就是让我们写的页面在每个浏览器中都可以顺利运行。 例如:
前面我们已经讲了 webpack 对 css、less 文件的处理,和处理 less 文件类似,处理 sass、stylus 也只需安装对应的工具再进行配置即可,具体可以查看官方文档:webpack.js.org/loaders/sas… 以及 webpack.js.org/loaders/sty… 。
使用最新的 CSS 特性,并编译为就浏览器兼容的语法,类似于 babel preset env 安装:
来到这家公司之后,一直在使用webpack,也写了不少笔记,但是都比较零散,现在决定整理一下webpack相关的知识点,由浅入深,方便自己后续查漏补缺,后续会一直更新。
很多人写这种小工具文件会习惯性的加上闭包,这个其实是没有必要的。ES6 中每个文件都是单独的一个模块。
👆点击“博文视点Broadview”,获取更多书讯 在前端基础建设中,对样式方案的处理是必不可少的。 在本文中,我们将实现一个工程化主题切换功能,并梳理现代前端样式的解决方案。 1 设计一个主题切换工程架构 随着iOS 13引入深色模式(Dark Mode),各大应用和网站也都开始支持深色模式。相比于传统的页面配色方案,深色模式具有较好的降噪性,也能让用户的眼睛在看内容时更舒适。 那么对于前端来说,如何高效地支持深色模式呢? 这里的高效就是指工程化、自动化。在介绍具体方案前,我们先来了解一个必会的前端工
本期给大家在webpack5中如何配置css用到的解析和插件的使用,更准确的说是PostCSS的插件。众所周知,现在大部分前端项目都在使用webpack做打包,打包做解析的比较重要目的一个是给js做转化,比如es6转es5,混淆压缩等。然后就是对css进行解析,比如说scss转css,less转css,前缀自动补全,还有移动端项目px转rem或者px转vw。今天我们就介绍将后者其中的前缀自动补全,px转rem,px转vw,这都是在PostCSS中极为常用的插件。
原文链接:A look into writing future CSS with PostCSS and cssnext 译者:nzbin 像 Twitter,Google,BBC 使用的一样,我打算对 CSS 后处理器 PostCSS 的世界一探究竟。 PostCSS是什么? PostCSS 是使用 javascript 插件转换 CSS 的后处理器。PostCSS 本身不会对你的 CSS 做任何事情,你需要安装一些 plugins 才能开始工作。这不仅使其模块化,同时功能也会更强。 它的工作原理就是
不久前,我写了“I’m Excited About PostCSS, But I’m Scared to Leave Sass”。从那时起,我全心全意地拥抱PostCSS(离开Sass,至少暂时性的)。我已经在大型项目中使用PostCSS,贡献和创作插件,与维护人员沟通,了解更多可能。这一切都很顺利,十分顺利。
今天在吃早饭的时候就被同事@,说有一块页面效果在测试服务器的部署效果跟本地不一样:代码在本地运行没有问题,部署后发现有一个分割线的位置明显不对。来到公司后看了同事的演示,觉得可能是 css 代码压缩时出现了问题。
CSS 的隔离主要有两类方案,一类是运行时的通过命名区分,一类是编译时的自动转换 CSS,添加上模块唯一标识。
回归正题,postcss-loader有什么用? PostCSS 本身是一个功能比较单一的工具。它提供了一种方式用 JavaScript 代码来处理 CSS。它负责把 CSS 代码解析成抽象语法树结构
目前移动端的适配方案一般就是两种,一个是rem方案,一个就是vw的方案,本篇就是一次性讲清楚如何去运用这两种方案来解决问题。 panda-vue-template 手把手搭建vue小商城2.0 1、关于rem rem的原理什么的我就不说了,网上搜文章一搜一大把。 一般是使用手淘的lib-flexible.js,但是这个作为一种过渡方案已经被废弃了,目前已不推荐在你的新项目中使用这个方案来解决手机适配问题。 感兴趣可以看看我老早以前写的这篇-->手机适配问题之rem和lib-flexible,我
首先,这里说的迁移并不代表这两个技术的优劣,其次也不代表它们是矛盾不相容的,相反它们搭配使用是很棒的。
我们知道在写css的时候由于要兼容不同厂商浏览器,一些比较新的属性需要给它们添加厂商前缀来兼容。移动端还好,基本只要兼容webkit内核的即可,pc端就虐心了,ff、ie、Opera……可以说五花八门,应有尽有,每次要使用例如一些css3属性的时候,就要考虑到添加前缀兼容的问题,那么多属性那么多前缀,简直是泯灭人性! 不过好在现在各种工具的出现,已经可以很好地解决这个问题了,下面就简单介绍几个吧。 1. postcss postcss是一个用JS插件转化样式的工具。这些插件可以检查CSS,支持变量和mixi
命令行运行: npm install -g npm npm就自动为我们更新到最新版本
postcss-px2rem不能忽略指定文件 需要安装postcss-px2rem-exclude
由于小程序更新迭代速度很快,而且我们的技术栈是 react 全家桶,所以在对比 wepy 和 mpvue 之后,我们选择了直接使用原生小程序。对比图如下:
前阵子为了满足工作上的一个需求开发了一个PostCSS 插件,后来也将这个插件提交给PostCSS 官方并得到认可。在这篇文章中笔者将记录开发过程中遇到的一些问题,且斗胆将之称为“最佳实践”,希望对有兴趣尝试PostCSS 插件开发的您有所帮助。 简介篇 开发成果展示 首先先上成果:https://github.com/Jeff2Ma/postcss-lazyimagecss (欢迎给个star 哦~) postcss-lazyimagecss 插件实现的功能是为 CSS 中的background-imag
postcss-lazyimagecss 是Jeff 基于gulp-lazyimagecss 开发的一个PostCSS 插件,实现的功能是在CSS 中自动添加width / height 属性。项目地址:https://github.com/Jeff2Ma/postcss-lazyimagecss (欢迎给个star!) 安装使用 npm install postcss-lazyimagecss --save-devnpm install postcss-lazyimagecss --save-dev 在G
相比较react,vue所需要的插件要少得多,我们知道在vue中,大多数是以.vue的模版组件,因此关键是我们可以用webpack的相关loader能够解析.vue文件即可,在vue项目中解析单文件组件,热加载,css作用域等全部依赖于这个插件vue-loader[1],因此vue-loader算是vue工程化中必不可少的一个插件。
注意! 这里有个坑,px2rem会把第三方库也跟着转成了rem 卸载之前的postcss-px2rem
一旦提示:Error: PostCSS plugin tailwindcss requires PostCSS 8.
借助相关的插件我们可以把新的特性降级到 css3乃至一些特性降级到css2.1...无缝过渡
参考链接: postcss-loader webpack css-loader
最近公司需要给多个 webapp(大概20+)加上多皮肤的功能,原先默认是白色皮肤,我们先从暗黑模式入手,从而逐渐实现多皮肤功能。本篇记录下实现思路。
最近公司需要给多个 webapp(大概 20+)加上多皮肤的功能,原先默认是白色皮肤,我们先从暗黑模式入手,从而逐渐实现多皮肤功能。本篇记录下实现思路。
原创不易,未经作者允许禁止转载!! 认识Loader Loader可以用于对模块的源代码进行转换; 在加载这个模块时,webpack其实并不知道如何对其进行加载,我们必须定制对应的loader来完成这个功能。 loader配置方式 内联方式:import "css-loader!../css/index.css"; loader和文件路径用!分隔 配置方式:webpack.config.js 配置方式表示的意思是在我们的webpack.config.js文件中写明配置信息 module.rules中允许我
⼤家⼀开始使⽤ npm 安装依赖包时,肯定感受过那挤⽛膏般的下载速度,上⽹⼀查只需要将 npm 源设 置为淘宝镜像源就⾏,在控制台执⾏⼀下以下命令: npm config set registry https://registry.npm.taobao.org
前提 *create-react-app 创建的项目 通过 eject 命令暴露出react 全部配置 安装配置 postcss-pxtorem npm i postcss-pxtorem -D 添加rem转换插件 webpack.config.js //104行 require('postcss-pxtorem')({ rootValue : 100, selectorBlackList : [], //过滤 propList : ['*'], }) 排错 使用less css文件为什么
该插件主要结合了 postcss-pxtorem 和 postcss-px-to-viewport 的功能,精简了不常用的配置。默认将 vw 作为优先单位使用,以 rem 作为回退模式。考虑到 vw 在移动设备的支持度不如 rem,这款插件很好的解决了该问题。
创建 postcss-preset-env 配置文件 .browserslistrc
大家都知道转换px单位的插件很多,著名的有postcss-px-to-viewport和postcss-pxtorem,前者是将px转换为vw,后者是将px转换为rem,简化了不常用的配置。将成为vw优先单位,以rem为退货模式。考虑到vw在移动设备上的支持不如rem,这个插件很好的解决了这个问题。然后简单介绍一下。
本文适用于所有前端开发人员。文章会介绍 PostCSS 的主功能实现原理,不是介绍 api,也不会介绍所有功能的原理,如果有需要了解全部功能或者查阅 API,可查看官方文档:https://postcss.org/api/。
移动端rem的适配已经淘汰了,目前大家使用的都是viewport。lib-flexible作者也在github明确地表示lib-flexible这个解决方案可以放弃使用了。
注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
图片 本篇博文的内容根据 Introduction to Gulp.js 系列文章 拓展而来,其代码、依赖包及目录结构部分均有所更改,更多详细内容,敬请参考
TypeScript 约定了 tsconfig.json 文件来存储项目配置,文档链接。
postcss-lazysprite 是一个基于PostCSS 开发的用于生成雪碧图图片及其CSS 的插件,经过半年持续迭代,现已稳定用在旗下两款产品的Web 业务中。其与市面上的雪碧图插件不同在于生成雪碧图的“懒惰”姿势。 前言 前端界,伴随着雪碧图这个概念出现,自动化产生雪碧图这类工具就层出不穷。无论是早期GUI 工具,还是现在流行的配合Gulp/Grunt/Webpack 这类构建工具而产生的雪碧图插件。总之是百花齐放,长江后浪推前浪,后浪死在沙滩上。 根据输入方式的不同,现在市面上基于Node.js
在安装postcss-pxtorem的时候会生成一个文件.postcssrc.js 在根目录找到.postcssrc.js文件,可以在此配置的基础上根据项目需求进行修改,如:
TreeShking 是通过静态分析的方式找出源码中不会被使用的代码进行删除,达到减小编译打包产物的代码体积的目的。
完整高频题库仓库地址:https://github.com/hzfe/awesome-interview
我第一感觉看到官网的介绍时,我寻思这不就是一个包含了很多样式的样式表吗,和以前 bootstrap 这种那样,他自带了很多样式,完了之后你直接用他自带的就行了。
npx-cli.js –ignore-existing create-react-app . –scripts-version –typescript
一旦样式多起来,这个问题就会变得越发严重,其实归根结底,就是类名冲突不好解决的问题。
本文是58到家前端工程化集成解决方案boi的博文系列之一。boi是基于webpack打造的一站式前端工程化解决方案,现已开源Github。 作为前端构建工具不可或缺的一个环节,自动生成css sprites图片不仅仅能够减少频繁的人工操作,还能够避免多人协作时对同一个sprites图片维护过程中因个人原因引起的图片不规范问题。58到家前端工程化解决方案boi的自动css sprites功能基于webpack实现,本文记录一下实现方案的各个细节以及需要注意的地方。 1. 功能需求 css sprites的功
领取专属 10元无门槛券
手把手带您无忧上云