wswmsword / postcss-mobile-forever

一款 PostCSS 插件,将固定尺寸的视图转为可跟随宽度变化而等比例伸缩的视图。To adapt different displays by one mobile viewport.
https://wswmsword.github.io/examples/mobile-forever/vanilla/
MIT License
276 stars 19 forks source link

vite+vue3+ts+vant4 + sass遇见scoped不生效 #48

Open linmiao911 opened 4 weeks ago

linmiao911 commented 4 weeks ago

问题:

1.示例

结果: image

  1. 示例

结果: image

配置如下:

css: { preprocessorOptions: { scss: { // 引入scss全局变量文件 additionalData: @use "@/assets/styles/base.scss" as *; } }, postcss: './postcss.config.cjs' }, `

postcss.config.cjs文件:

module.exports = { plugins: [ require('postcss-mobile-forever')({ appSelector: '#app', viewportWidth: 375, maxDisplayWidth: 600, rootContainingBlockSelectorList: ['van-tabbar', 'van-popup'], exclude: [/node_modules/] }), require('autoprefixer')({ overrideBrowserslist: ['> 1%', 'last 2 versions', 'not dead'] }) ] }

base.scss

, ::before, *::after { box-sizing: border-box; }

app {

height: 100vh; }

不清楚是什么原因,如果直接使用less在main.ts引入less样式文件则可以正常使用

wswmsword commented 4 weeks ago

是加上 scoped 之后就不转换吗?

linmiao911 commented 4 weeks ago

是加上 scoped 之后就不转换吗?

对的,scss加上后不转换

wswmsword commented 4 weeks ago

Ok,我这两天看看

wswmsword commented 4 weeks ago

方便给个最小包吗? 我本地用模版 vue3-vant-mobile 试了一下可以给 sass + scoped 转换。 下面图片第 49 行改成了 scss + scoped:

图片第 49 行改成了 scss + scoped

class 是 data-label 的样式成功转换:

class 是 data-label 的样式成功转换
linmiao911 commented 4 weeks ago

应该是我不规范导致的,我用了uno css还在写scss,可能是这个原因