首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

入门webpack(下)

安装 npm install --save-dev html-webpack-plugin 这个插件自动完成了我们之前手动做一些事情,正式使用之前需要对一直以来项目结构做一些改变: 移除public...app目录下,创建一个Html文件模板,这个模板包含title等其它你需要元素,在编译过程中,本插件会依据此模板生成最终html页面,会自动添加所依赖 css, js,favicon等文件,本例中我们命名模板文件名称为...,需要对模块进行额外配额; Babel有一个叫做react-transform-hrm插件可以不对React模块进行额外配置前提下让HMR正常工作; 更新我们例子来实际看看如何配置 //webpack...webpack提供了一些发布阶段非常有用优化插件,它们大多来自于webpack社区,可以通过npm安装,通过以下插件可以完成产品发布阶段所需功能 OccurenceOrderPlugin :为组件分配...") ] } 缓存 缓存无处不在,使用缓存最好方法是保证你文件名和文件内容是匹配内容改变,名称相应改变) webpack可以把一个哈希值添加到打包文件名中,使用方法如下,添加特殊字符串混合体

84960

2021 年了,你不还来试试 TailwindCSS

TailwindCSS 最基本使用方式,就是和之前 bootstarp 等 CSS 库用法没什么两样,就是 class 上加各种类名。...通过配置 TailwindCSS,可以自定义很多属性,如颜色。比如上图 bg-background-regular regluar 就是自定义颜色,只要定义一次,之后各个颜色样式都能使用。...写了这么多 class 到一个标签上不会很乱。这个时候,PostCSS + TailwindCSS 登场了。TailwindCSS 其实一个 PostCSS 插件。...PostCSS 都不陌生,用来对 CSS 进行各种预处理。配置 PostCSS,就可以使用一些特殊语法了。比如在 css 文件里使用 @apply 附加 TailwindCSS 样式。...5} COPY 当然,PostCSS 也支持插件可以扩展近似 SCSS 语法。

85120
您找到你想要的搜索结果了吗?
是的
没有找到

是时候学习PostCSS

传递AST每个函数都可以改变它;生成sourcemaps会跟踪所有的变化。 AST提供了一个直接API,开发人员可以使用它来编写插件。...从这几个例子可以看出,PostCSSAPI使我们可以很容易地处理CSS源代码(比使用正则表达式要简单和准确得多) 这就是PostCSS所有:它并没有改变CSS。...还可以您使用ID选择器时候,打印一个警告。还可以样式表头部加上ASCII-art字。还可以统计您使用 float声明次数,等等。 PostCSS可以提供无限多种插件读取和操作您CSS。...这一切都意味着… ☞ 当人们认为他们是批判“PostCSS时候,他们可能是批评某些插件插件包,或特定方式来使用一个特定插件。...用PostCSS解决问题 使用PostCSS使我意识到:CSS处理存在是为了解决某些问题;很多问题都有多种解决办法;我可以多种方法中挑选出适合自己,甚至是创建自己

56720

Vue 项目之 Webpack 中 PostCSS 工具使用(1)

主要就是两个步骤: 查找 PostCSS 构建工具中扩展,比如 webpack(构建工具) 中 postcss-loader(扩展); 添加你需要 PostCSS 相关插件; 前面我们说过,当我们说到...命令行使用 PostCSS 我们可以直接在终端中使用 PostCSS,但还需要安装一个工具:postcss-cli(借助 postcss-cli,就可以命令行界面或 npm 脚本中使用 PostCSS...比如,我们想要通过 PostCSS 某个插件给某些属性添加浏览器前缀,那我们就可以安装 autoprefixer 这个 PostCSS 插件,这个插件可以帮助我们自动给 CSS 属性添加浏览器前缀:...npm install autoprefixer -D 复制代码 工具都准备好了,还差个需要转换 css 文件,我们项目目录下新建一个 test.css 文件,文件内容如下: .title {...当然,关于浏览器前缀有关问题,比如何时加何时不加,这跟浏览器查询和 browserslist 工具有关,具体可以阅读我之前写过一篇文章:深入 Webpack5 等构建工具系列二(7) - 浏览器兼容性和

92400

【React】:CSS 模块化

模块化 CSS 使用主要场景是棘手大规模 CSS。 写代码并不难,难不让你代码随着时间推移成为拖累你“技术债”。 1.1....或者他们之间真的有关系? 你应该在 bio 旁边添加 pro-user ? image 和 profile 写在同一部分 CSS 可以在其他地方使用 avatar ?...光看代码无法回答这些问题,你必须在 CSS 代码中推理他们作用。 1.2. 难以维护 大规模 CSS 也难以维护。 当你改变了一个标签,样式就会像纸牌屋一样崩溃。...你会发现页面里包含是 logo,搜索栏,导航,照片列表,辅助导航,标签框,视频播放器等。这些是可以网站任何位置都可以独立使用内容。它们只是碰巧在这个特定页面以这种方式组合。 3....CSS模块化方案——BEM BEM,三个字母分别代表 Block、Element、Modifier,BEM 也是 2009 年提出,起源于 Yandex(可以说是俄语版 Google)。

1.2K20

Webpack Loader知识分享

PostCSS是一个通过JavaScript来转换样式工具 这个工具可以帮助我们进行一些CSS样式转换和适配,比如自动添加浏览器前缀、css样式充值; 但是实现这些功能,我们需要借助于PostCSS...插件 如何使用PostCSS 查找PostCSS构建工具中扩展,比如webpack中postcss-loader; 选择可以添加你需要PostCss相关插件 手动使用PostCSS 使用postcss-cli...事实上,配置postcss-loader时,我们配置插件并不需要使用autoprefixer。...我们可以使用另外一个插件:postcss-preset-env 例如八位十六进制颜色会帮我们转换成RGBA postcss-preset-env也是一个postcss插件; 它可以帮助我们将一些现代...可以拆分成多个Rule对象,通过enforce来改变它们顺序 enforce是rule对象一个属性。

50130

webpack 学习笔记系列04-资源处理优化

PostCSS 可以css 编写更加轻松,如根据适配浏览器使用 Autoprefixer 插件自动添加前缀适配不同浏览器。...importLoaders 表示 css-loader 作用于 @import 资源之前有多少个 loader 取值: 0 => 默认,没有 loader 1 => postcss-loader 2...$ npm install -D stylelint 此外,通过安装 stylelint-order 插件可以规范 css 书写顺序,如先写定位,再写盒模型,再写内容区样式,最后写 CSS3 相关属性。...和 svg-url-loader 之前完成图片优化,避免多个loader中重复引用 }] } }; 4.5 使用 PostCSS 生成 CSS Sprite 雪碧图 安装 loader.../src/index.html' }) ] }; 5.2 多入口页面配置 对于多入口 html 页面可以通过插件多次实例化来实现,但仅配置插件,引入入口 js 文件还是同样 main.js

1.7K120

CSS工程化

另一个角度来说,css工程化会遇到更多挑战,因为css不像JS,它语法本身经过这么多年并没有发生多少变化(css3也仅仅是多了一些属性而已),对于css语法本身改变也是一个工程化课题 如何解决...in js,因此,一些用JS语言开发移动端应用时候非常好用,因为移动端应用很有可能并不支持css 书写不便:书写样式,特别是公共样式时候,处理起来不是很方便 页面中增加了大量冗余内容页面中处理...安装好该插件后,postcss配置中加入下面的配置 module.exports = { plugins: { "postcss-preset-env": {} // {} 中可以填写插件配置...,接下来了解一下未来css语法,尽管某些语法仍处于非常早期阶段,但是有该插件存在,编译后仍然可以被浏览器识别 ① 变量 未来css语法是天然支持变量 :root{}中定义常用变量,使用--前缀命名变量...这个插件可以支持css中书写属性集,类似于LESS中混入,可以利用CSS新语法定义一个CSS代码片段,然后需要时候应用它。

83331

前端工程化思维:主题切换架构

介绍具体方案前,我们先来了解一个必会前端工程化神器——PostCSS。 ▊ PostCSS原理和相关插件能力 简单来说,PostCSS是一款编译CSS工具。...基于前面内容介绍Babel思想,对比JavaScript编译器,我们不难猜出PostCSS工作原理:PostCSS接收一个CSS文件,并提供插件机制,提供给开发者分析、修改CSS规则能力,具体实现方式也是基于...} } */ }} 在编写PostCSS 插件时,我们可以直接使用postcss.plugin方法完成实际开发,然后就可以开始动手实现postcss-theme-colors插件了...▊ 动手实现postcss-theme-colors插件 PostCSS插件设计中,我们看到了清晰AST设计痕迹,经过之前学习,我们应该对AST 不再陌生。...在此基础上,我们完全可以抽象出一个色组和色值平台,方便设计团队更新内容。这个平台可以以JSON或YML等任何形式存储色值和色组对应关系,方便各个团队协作。

57410

webpack基础入门

localhost:8080下看到与之前一样内容,这说明react和es6被正常打包了。...接下来介绍Webpack中另一个非常重要功能-Plugins 插件(Plugins) 插件(Plugins)是用来拓展Webpack功能,它们会在整个构建过程中生效,执行相关任务。...安装 npm install --save-dev html-webpack-plugin 这个插件自动完成了我们之前手动做一些事情,正式使用之前需要对一直以来项目结构做一些更改: 移除public...压缩后代码 缓存 缓存无处不在,使用缓存最好方法是保证你文件名和文件内容是匹配内容改变,名称相应改变) webpack可以把一个哈希值添加到打包文件名中,使用方法如下,添加特殊字符串混合体...带hash值js名 去除build文件中残余文件 添加了hash之后,会导致改变文件内容后重新打包时,文件名不同而内容越来越多,因此这里介绍另外一个很好用插件clean-webpack-plugin

1.5K20

谈谈 CSS 预处理器

PostCSS 会把 CSS 解析成 AST(Abstract Syntax Tree 抽象语法树),之后由其他插件进行不同处理。...功能 PostCSS 本体功能比较单一,大多数 CSS 处理功能都由插件提供,下面是一些常用插件: Autoprefixer 为 CSS属性添加浏览器特定前缀。...postcss-custom-properties 支持 CSS 自定义属性。 优点 插件系统完善,扩展性强。 配合插件功能齐全。 生态优秀。 缺点 配置相对复杂。 2....扩展/集成:可以一个选择器内继承另一个选择器。 操作符:可以 CSS 中使用操作符进行计算。 条件/循环语句:可以循环/条件生成 CSS。 自定义函数:可以自定义复杂操作函数。...扩展/集成:可以一个选择器内继承另一个选择器。 运算:可以 CSS 中进行计算。 条件/循环语句:可以循环/条件生成 CSS。 优点 使用广泛。 可以浏览器中运行,容易实现主题定制功能。

2.5K31

从零开始构建你 Gulp

,它可以用来审查 CSS 代码,也可以增强 CSS 语法(比如变量和混合宏),还支持未来 CSS 语法、行内图片等等,而本文所使用到大部分 CSS 插件,均是来自 PostCSS,关于更多 PostCSS...介绍,而通过 w3cplus PostCSS 深入学习系列文章 进行学习 stylelint 是一个代码审查插件,除了审查 CSS 语法外,还能审查类 CSS 语法,帮助我们审查出重复 CSS...,我们通过 postcss-reporter 插件控制台记录 PostCSS 消息 图片 图片 我们 CSS 样式这部分引入了大量 PostCSS 插件,各插件部分功能如下所示,demo 运行效果就不在这里详细展示...,使得我们可以浏览器中加载 Node.js 模块,而 watchify 插件可以加速 browserify 编译,而 vinyl-source-stream 把普通 Node Stream 转换为...,其作用是能让浏览器实时、快速响应 HTML、CSS、JS、Sass、Less 等文件更改并自动刷新页面,更重要是,可以同时 PC、平板、手机等设备下进项调试,我们可以使用 Browsersync

1K40

webpack学习简单总结

要是css引入正确:必须引入css-loader,要使改变css生效,要引入style-loader; 各个js函数调用只能在各自函数中写,引入只是合并意思,但并不能直接使用引入js函数。...3.css-loader 4.style-loader 注意:如果一个css中import导入另一个css,另一个csspostcss-loader没生效,这时要给css-loader加一个参数,指定...postcss-loader’ 为了使用简便,不能每次引入css时候加loader,则可以命令中实现: webpack hello.js bundle.js --module-bind 'css=...--watch 命令后面加 --watch ,可以不用每次改动都执行命令,而是自动改变 注意:修改了webpack配置需要重启,即即使设置了监听也要手动重新编译; 关于版本安装问题:把想要安装npm...hash值可以理解为版本号,只有文件发生改变时,hash值才会变化。 hash值对静态资源版本管理很有用。

1.2K60

金九银十前端面试题总结(附答案)

(2)::before就是以一个子元素存在,定义元素主体内容之前一个伪元素。并不存在于dom之中,只存在在页面之中。...以下三个方向都是时下比较流行、普适性非常好 CSS 工程化实践:预处理器:Less、 Sass 等;重要工程化插件PostCss;Webpack loader 等 。...(2)PostCssPostCss 是如何工作?我们什么场景下会使用 PostCss? 它和预处理器不同就在于,预处理器处理是 类CSS,而 PostCss 处理就是 CSS 本身。...更强是,由于 PostCss 有着强大插件机制,支持各种各样扩展,极大地强化了 CSS 能力。...插件可以帮助我们自动增加浏览器前缀;允许我们编写面向未来 CSSPostCss 能够帮助我们编译 CSS next 代码;(3)Webpack 能处理 CSS

73440

腾讯前端二面面试题_2023-03-01

以下三个方向都是时下比较流行、普适性非常好 CSS 工程化实践: 预处理器:Less、 Sass 等; 重要工程化插件PostCss; Webpack loader 等 。...(2)PostCssPostCss 是如何工作?我们什么场景下会使用 PostCss? 它和预处理器不同就在于,预处理器处理是 类CSS,而 PostCss 处理就是 CSS 本身。...更强是,由于 PostCss 有着强大插件机制,支持各种各样扩展,极大地强化了 CSS 能力。...插件可以帮助我们自动增加浏览器前缀; 允许我们编写面向未来 CSSPostCss 能够帮助我们编译 CSS next 代码; (3)Webpack 能处理 CSS ?...Webpack 能处理 CSS : Webpack 裸奔状态下,是不能处理 CSS ,Webpack 本身是一个面向 JavaScript 且只能处理 JavaScript 代码模块化打包工具

1.2K10

如何编写属于自己 PostCSS 8 插件

旧版本使用PostCSS 7,升级至 PostCSS 8 过程中,笔者发现部分插件前置依赖还是停留在 7 版本,且年久失修, PostCSS 8 中出现各种各样问题,无奈只能研究源码,将目前部分旧版本插件升级至新版本...color: white; } 可以看到,字体颜色值已经成功做了转换,注释内容已经删掉,但注释标识符还依旧存在,这是因为注释节点是包含/**/内容存在,只要 AST 里注释节点还存在,最后 PostCSS...尽量使你插件和使用者代码解耦,开放有限 API,同时开发者使用你插件时从名字就可以知道插件功能。...开发插件前确认是否有现成轮子 如果你对自己项目有个新点子,想自己开发一个插件去实现,开始写代码前,可以先到 PostCSS 官方注册插件列表中查看是否有符合自己需求插件,避免重复造轮子。...目前 PostCSS 8 还有大量还没进行升级兼容 PostCSS 插件,希望读者可以阅读本文后可以获得启发,对 PostCSS 8 插件生态做出贡献。

93820

使用 PostCSS 插件让你网站支持暗黑模式

当我们 CSS 抽象语法树中修改一些内容后,PostCSS 将语法树(AST)生成回 CSS 字符串。 核心就是 编译->转换-->生成 是不是跟 babel 相似呢?...PostCSS 能解析 Less ? 答案是不能。 当前假设我们 webapp 是基于 webpack 构建。 module: { rules: [ //......CSS AST } }) 然后 postcss.config.js引入就可以了 module.exports = { plugins: [require('..../test-plugin'), require('autoprefixer')], } PostCSS plugin Hello world 编写一个反转 css 属性值插件 var postcss...这款插件开源到 github 并且发布了 npm 包 2、通过 PostCSS 思考如何将老项目中 css 颜色替换成变量,当项目较多时,一定程度上也节省了人力成本。

78520

使用 PostCSS 插件让你网站支持暗黑模式

当我们 CSS 抽象语法树中修改一些内容后,PostCSS 将语法树(AST)生成回 CSS 字符串。 核心就是 编译->转换-->生成 是不是跟 babel相似呢?...PostCSS 能解析 Less ? 答案是不能。 当前假设我们 webapp 是基于 webpack 构建。 module: { rules:[ //......CSS AST }; }); 然后 postcss.config.js引入就可以了 module.exports = { plugins: [ require('..../test-plugin'), require('autoprefixer') ] }; PostCSS plugin Hello world 编写一个反转 css 属性值插件 var postcss...这款插件开源到 github 并且发布了 npm 包 2、通过 PostCSS 思考如何将老项目中 css 颜色替换成变量,当项目较多时,一定程度上也节省了人力成本。

79610
领券