广告
返回顶部
首页 > 资讯 > 精选 >怎么在css3打包后自动追加前缀插件:autoprefixer
  • 776
分享到

怎么在css3打包后自动追加前缀插件:autoprefixer

2023-06-08 07:06:26 776人浏览 独家记忆
摘要

小编给大家分享一下怎么在css3打包后自动追加前缀插件:autoprefixer ,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!用Vue-cli构建的项目脚手架已

小编给大家分享一下怎么在css3打包后自动追加前缀插件:autoprefixer ,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Vue-cli构建的项目脚手架已经帮你把autoprefixer的配置做好了,自己不需要做什么改动就会自动加前缀:

怎么在css3打包后自动追加前缀插件:autoprefixer

下面一起看看涉及到autoprefixer这个插件的一些配置:

1,postCSS配置写在.postcssrc.js

怎么在css3打包后自动追加前缀插件:autoprefixer

2,浏览器规则则写在package.JSON上,

怎么在css3打包后自动追加前缀插件:autoprefixer

3,开发环境(build/webpack.dev.conf.js)样式相关的loader

怎么在css3打包后自动追加前缀插件:autoprefixer

4,生产环境(build/WEBpack.prod.conf.js)样式相关的loader

怎么在css3打包后自动追加前缀插件:autoprefixer

上述的配置设置不需要自己配置,cli脚手架环境搭建的时候已经配置好了。

vue-cli的开发环境和生产环境都是使用了postcss的,并且配置是一样的

这里有一个问题,网上有博主说项目打包前和打包后的css前缀不一致:

--给app.vue下的img添加样式

img{ display: flex; transfORM: translateX(200px)}

--打包前(即开发环境)img的样式

怎么在css3打包后自动追加前缀插件:autoprefixer

--打包后(即生产环境)img的样式

怎么在css3打包后自动追加前缀插件:autoprefixer

根据上面可看出打包前和打包后元素所带的css前缀不一致了。

然后给出的解决方案:

从上面可以看出,vue-cli的开发环境和生产环境都是使用了postcss的,并且配置是一样的,那么为什么打包前和打包后元素所带的css前缀不一致呢,

锁定问题

我们可以分析对比下build/webpack.dev.conf.js和build/webpack.prod.conf.js这两个文件,影响css的无非就module里处理样式的loader和处理css的插件plugin,从上面可以看出影响前缀的postcss的loader在两个环节中是一致的,那么就可以知道问题出在处理css的插件上了。

经过排查发现,webpack.prod.conf.js配置里是多了两个css处理插件的,如下

怎么在css3打包后自动追加前缀插件:autoprefixer

ExtractTextPlugin这是提取分离css文件,不会影响css前缀,排除,那么问题就定到OptimizeCSSPlugin插件身上。再进一步,当我们把OptimizeCSSPlugin插件注释掉,然后打包测试,居然发现这时开发环境和生产环境的css前缀一致了,就是它了!!!

我们打开到npm官网搜一下这家伙

https://www.npmjs.com/package/optimize-css-assets-webpack-plugin

这是一个优化压缩css代码的插件,但很失望,文档说明很少

但我们注意到有一句话很关键:

怎么在css3打包后自动追加前缀插件:autoprefixer

这货里面依赖了cssnano,这插件也是用来优化处理css格式、前缀什么的。同时也有个autoprefixer配置参数,直接到它官网 Https://cssnano.co/ 找到autoprefixer:

怎么在css3打包后自动追加前缀插件:autoprefixer

这里的翻译是:根据browsers选项删除不必要的前缀。请注意,默认情况下,它不会向CSS文件添加新前缀,这就可以解析清除我们的问题了,原来这插件的autoprefixer(默认应该是为true)把它认为不必要的前缀删掉了,而postcss的autoprefixer是将我们设定的浏览器范围的前缀加上,因此完美冲突了

解决问题

在build/webpack.prod.conf.js文件中OptimizeCSSPlugin插件的属性cssProcessorOptions加上autoprefixer:false来禁用它,避免冲突

怎么在css3打包后自动追加前缀插件:autoprefixer

上代码:

new OptimizeCSSPlugin({  cssProcessorOptions: config.build.productionSourceMap   ? { safe: true, map: false,autoprefixer:false }   : { safe: true, autoprefixer: false} }),

以上是“怎么在css3打包后自动追加前缀插件:autoprefixer ”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 怎么在css3打包后自动追加前缀插件:autoprefixer

本文链接: https://www.lsjlt.com/news/252638.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在css3打包后自动追加前缀插件:autoprefixer
    小编给大家分享一下怎么在css3打包后自动追加前缀插件:autoprefixer ,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!用vue-cli构建的项目脚手架已...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作