kbone icon indicating copy to clipboard operation
kbone copied to clipboard

现有的web应用vue组件style包含scoped属性,不改源代码的情况下,怎么在打包的时候去掉scoped

Open dengxianxiao opened this issue 3 years ago • 4 comments

<style lang="less" scope> .demo { width: 100%; } </style>

打包为小程序后不生效

.demo[data-v-sdfs1212] { width: 100%; }

不改源代码的情况下,怎么在打包的时候去掉scoped

dengxianxiao avatar Jul 22 '22 08:07 dengxianxiao

自己写loader或者插件吧。。

yifan0817 avatar Jul 23 '22 10:07 yifan0817

可以写个前置 loader,在编小程序侧使用处理掉 scope。

比如这个 loader 就做了类似的事:https://github.com/Tencent/kbone/tree/develop/packages/vue-improve-loader

JuneAndGreen avatar Jul 25 '22 04:07 JuneAndGreen

貌似这样子后,样式都是全局的,不会作用在组件里,造成相互污染了。

jasonxxp avatar Sep 24 '22 08:09 jasonxxp

貌似这样子后,样式都是全局的,不会作用在组件里,造成相互污染了。

是的,受限于小程序自身不支持属性选择器,所以无法支持 scoped,对于动态技术(kbone 即属于此类)的话只能手动规避污染问题。

如果是静态技术或者直接原生开发的话,可以使用原生组件的 styleIsolation 属性。

JuneAndGreen avatar Sep 27 '22 04:09 JuneAndGreen