用vue-cli构建的项目脚手架已经帮你把autoprefixer的配置做好了,自己不需要做什么改动就会自动加前缀:
下面一起看看涉及到autoprefixer这个插件的一些配置:
1,postcss配置写在.postcssrc.js,
2,浏览器规则则写在package.json上,
3,开发环境(build/webpack.dev.conf.js)样式相关的loader
4,生产环境(build/webpack.prod.conf.js)样式相关的loader
上述的配置设置不需要自己配置,cli脚手架环境搭建的时战国七雄 百家讲坛候已经配置好了。
vue-cli的开发环境和生产环境都是使用了postcss的,并且配置是一样的
这里有一个问题,网上有博主说项目打包前和打包后的css大学生心理健康教育论文前缀不一致:
–给app.vue下的img添加样式
img{ display: flex; transform: translatex(200px)}
–打包前(即开发环境)img的样式
品的结构8211;打包后(即生产环境)img的样式
根据上面可看出打包前和打包后元素所带的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处理插件的,如下
extracttextplugin这是提取分离css文件,不会影响css前缀,排除,那么问题就锁定到optimizecssplugin插件身上。再进一步,当我们把optimizecssplugin插件注释掉,然后打包测试,居然发现这时开发环境和生产环境的css前缀一致了,就是它了!!!
我们打开到npm官网搜一下这家伙
这是一个优化压缩css代码的插件,但很失望,文档说明很少
但我们注意到有一句话很关键:
这货里面依赖了cssnano,这插件也是用来优化处理css格式、前缀什么的。同时也有个autoprefixer配置参数,直接到它官网 https://cssnano.co/ 找到autoprefixer:
这里的翻译是:根据browrs选项删除不必要的前缀。请注意,默认情况下,它不会向css文件添加新前缀,这就可以解析清除我们的问题了,原来这插件的autoprefixer(默认应该是为true)把它认为不必要的前缀删掉了,而postc亚冠直播视频ss的autoprefixer是将我们设定的浏览器范围的前缀加上,因此完美冲突了
解决问题
在build/webpack.prod.conf.js文件中optimizecssplugin插件的属性cssproc是以区区不能废远翻译essoroptions加上autoprefixer:fal来禁用它,避免冲突
上代码:
new optimizecssplugin({ cssprocessoroptions: config.build.productionsourcemap ? { safe: true, map: fal,autoprefixer:fal } : { safe: true, autoprefixer: fal} }),
结论
最后,看看我们dev和build出来的css前缀,应该就一致的了:
问题原因就是:optimizecssplugin里面依赖了cssnano,而cssnano里面也有一个autoprefixer配置参数,它的作用是删除不必要的前缀(会误删在某些浏览器必要的前缀),这与postcss的autoprefixer效果冲突了,因此禁用它。现在打包出来的与我们设定的浏览器范围对应的前缀一致
按照网上的博主的配置确实可以把开发环境和测试环境的前缀一模一样,但是看了下没有必要,问题的前提不是前缀不一致,那个配置只是把和当前浏览器不匹配的前缀不显示出来而已,样式还都是生效的,个人觉得如果不是特别大的问题不用改配置。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。
本文发布于:2023-04-06 21:17:20,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/dc6185f540c43b5db39823604b02c7f4.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:详解如何在css3打包后自动追加前缀插件:autoprefixer.doc
本文 PDF 下载地址:详解如何在css3打包后自动追加前缀插件:autoprefixer.pdf
留言与评论(共有 0 条评论) |