微信小程序中扩展 sass(scss) 安装后还会报错问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序中扩展 sass(scss) 安装后还会报错问题相关的知识,希望对你有一定的参考价值。

参考技术A 在使用<style scoped lang="scss" ></style> 通常都会使用预处理,例如使用sass的时候,明明已经安装 npm install sass-loader node-sass webpack --save-dev 这些扩展,为什么还是在使用的时候报错,如下:

最后的解决方案在github 上得到了解决,安装的时候都是默认最新版本,恰恰相反问题就出现在这里, 最终把sass-loader版本降到了7.1.0 就可以了 npm install sass-loader@7.1.0 --save-dev

如有帮到各位还请点个赞,有疑问请留言

vue2.0以上版本安装sass(scss)

一、首先说明sass和scss的区别。

1、异同:1)简言之可以理解scss是sass的一个升级版本,完全兼容sass之前的功能,又有了些新增能力。语法形式上有些许不同,最主要的就是sass是靠缩进表示嵌套关系,scss是花括号

     2)文件扩展名不同,Sass 是以“.sass”后缀为扩展名,而 SCSS 是以“.scss”后缀为扩展名

     3)语法书写方式不同,Sass 是以严格的缩进式语法规则来书写,不带大括号({})和分号(;),而 SCSS 的语法书写和我们的 CSS 语法书写方式非常类似。

技术图片
//sass 
.father
    width:100px;
    .son
        width:50px;
//scss 
.father{
    width:100px;
    .son{
        width:50px;
    }
}       
技术图片

2、 scss功能很强大的样子,能做运算、写函数啥的,但是我只是作为语法糖用而已,只看了些基础功能 
我个人常用的功能有:

    • 嵌套
    • 变量 $color : #111111;
    • 混入 @mixin
    • 继承 @extend

3、一个关于@mixin、@extend、%placeholder的适用场景总结

  • mixin 可以传变量
  • extend 不可以传变量,相同样式直接继承,不会造成代码冗余;基类未被继承时,也会被编译成css代码
  • placeholder 基类未被继承时不会被编译成css代码

二、

1、开始在vue项目中使用sass,在命令行输入一下命令进行安装(使用git命令行要用shift+insert 进行粘贴否则粘贴不上)

cnpm install node-sass --save-dev //安装node-sass 
cnpm install sass-loader --save-dev //安装sass-loader
cnpm install style-loader --save-dev //安装style-loader 有些人安装的是 vue-style-loader 其实是一样的!

2. 这个时候你打开build文件夹下面的webpack.base.config.js
把里面的module改成这样的

技术图片
module: { 
    rules: [
          {
            test: /\.vue$/,
            loader: ‘vue-loader‘,
            options: vueLoaderConfig
          },
          {
            test: /\.js$/,
            loader: ‘babel-loader‘,
            include: [resolve(‘src‘),
            resolve(‘test‘)]
          },
          {
             test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
             loader: ‘url-loader‘,
             options: {
                limit: 10000,
                name: utils.assetsPath(‘img/[name].[hash:7].[ext]‘)
}
},
          {
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: ‘url-loader‘,
options: {
limit: 10000,
name: utils.assetsPath(‘fonts/[name].[hash:7].[ext]‘)
}
},
          { //从这一段上面是默认的!不用改!下面是没有的需要你手动添加,相当于是编译识别sass!
test: /\.scss$/,
loaders: ["style", "css", "sass"]
}
]
}
技术图片

3.在需要用到sass的地方添加lang=scss

 <style lang="scss" scoped="" type="text/css"> 
//你的sass语言 $primary-color: #333;
body {
color: $primary-color; //编译后就成了 color:#333;类似于js的变量!
}
</style>

sass的一些其它用法可以查看官网!

 

以上是关于微信小程序中扩展 sass(scss) 安装后还会报错问题的主要内容,如果未能解决你的问题,请参考以下文章

vue2.0以上版本安装sass(scss)

微信小程序弹窗下输入框点击还会获取焦点

uni-app项目起步

Sass ,Scss 简单教程

微信小程序使用weui扩展组件踩坑

如何在 vue 3 vite 中使用 sass 扩展?