didi / mpx

Mpx,一款具有优秀开发体验和深度性能优化的增强型跨端小程序框架

Home Page:https://mpxjs.cn

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Feature Request] CSS 样式的条件编译 在使用预编译(比如SCSS)的时候不支持

sunrisejack opened this issue · comments

关于CSS样式的条件编译,如果不使用预编译的时候,可以编译成功,但使用SCSS的时候则编译不成功。

<!-- 这样写不支持条件编译 -->
<style lang="scss" scoped>
.title {
  /* @mpx-if (__mpx_mode__ === 'wx') */
  color: blue;
  /* @mpx-else */
  color: red;
  /* @mpx-endif */
  font-size: 18px;
}
</style>

<!-- 这样写支持-->
<style scoped>
.title {
  /* @mpx-if (__mpx_mode__ === 'wx') */
  color: blue;
  /* @mpx-else */
  color: red;
  /* @mpx-endif */
  font-size: 18px;
}
</style>

想问一下怎么解决这个问题,毕竟SCSS用起来方便一些

先将sass-loader中的sassOptions中的outputStyle配置修改下吧,目前默认配置的是compressed,这个配置会将scss中的注释给清楚掉,可以先修改为 expanded,我们后续在脚手架中也进行下修改

先将sass-loader中的sassOptions中的outputStyle配置修改下吧,目前默认配置的是compressed,这个配置会将scss中的注释给清楚掉,可以先修改为 expanded,我们后续在脚手架中也进行下修改

我试了一下还是不行,编译出来是这样的:

.title{color:blue;color:red;font-size:18px}

我的loader是这么配置的:

// mpx的loader配置在这里传入
// 配置项文档:https://www.mpxjs.cn/api/compile.html#mpxwebpackplugin-loader
module.exports = {
  // 自定义 loaders
  loaders: {
    // [2022-06-15] 增加 scss 支持
    scss: [
      {
        loader: 'sass-loader',
        options: {
          sassOptions: { outputStyle: 'expanded' }
        }
      },
      { loader: 'css-loader' }
    ]
  }
}

可以上传下你的复现demo哈

先将sass-loader中的sassOptions中的outputStyle配置修改下吧,目前默认配置的是compressed,这个配置会将scss中的注释给清楚掉,可以先修改为 expanded,我们后续在脚手架中也进行下修改

我试了一下还是不行,编译出来是这样的:

.title{color:blue;color:red;font-size:18px}

我的loader是这么配置的:

// mpx的loader配置在这里传入
// 配置项文档:https://www.mpxjs.cn/api/compile.html#mpxwebpackplugin-loader
module.exports = {
  // 自定义 loaders
  loaders: {
    // [2022-06-15] 增加 scss 支持
    scss: [
      {
        loader: 'sass-loader',
        options: {
          sassOptions: { outputStyle: 'expanded' }
        }
      },
      { loader: 'css-loader' }
    ]
  }
}

目前新版mpx不需要在loader options中配置rules了,目前这个配置已经废弃了,可以直接去webpack config的module.rules中进行配置