【菜鸟搭建react项目之路11】【scss】关于引入scss的步骤与问题解决
写过scss和css的都知道,scss可以嵌套样式选择器,感觉更符合写代码的逻辑和思维。所以我也是更愿意在项目里引用scss的。下面简单介绍下引入的步骤和引入踩的坑。
引入步骤
1、安装node-sass、sass-loader
npm i node-sass@4 sass-loader@10 -d
2、在webpack.config.js文件中引入sass-loader
{
  test: /\.(css|scss)$/,     // 增加对scss文件的处理
  exclude: /node_modules/,   // 不对node_modules目录下的文件进行处理
  use: [
    // css-loader和style-loader,对css后缀的文件进行处理
    // style-loader必须在css-loader前面
    { loader: "style-loader" },
    { loader: "css-loader" },
    { loader: "sass-loader" },  // 引入sass-loader,处理scss文件
  ],
},
3、在js文件中引入scss文件
import "../../css/semantic.scss";引入scss踩坑记
1、报错:Module build failed (from ./node_modules/style-loader/dist/cjs.js):TypeError: this.getOptions is not a function

原因:一般这种错误,首先就可以去查查包之间的冲突,果然我的style-loader@3.3.1太高了,不适合webpack4 。换成style-loader@2.+
解决:
npm i style-loader@2 -d
2、报错:ERROR in ./css/semantic.scss (./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./css/semantic.scss)

原因:版本不兼容
解决:合适的版本如下
css-loader@5 和 webpack@4
sass-loader@10 和 node-sass@4以及webpack@4
3、!!!那怎么知道自己装的包合不合适,有没有冲突,应该对应哪些版本的包呢?
- 去github官网(https://github.com/),搜索包名(style-loader)![]() 
- 找到包后,点击进入查看![]() 
- 根据tag来筛选版本代码![]() 
- 点击package.json文件,查看依赖的包版本![]() 
 
                    
                     
                    
                 
                    
                




 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号