我想在我的应用程序中添加 .scss 支持,该应用程序是使用 create-react-app 创建的。

我确实弹出了npm run pop并安装了必要的依赖项:npm install sass-loader node-sass --save-dev

在 config/webpack.config.dev.js 内部,我向加载器添加了以下代码段:

{ 
   test: /\.scss$/, 
   include: paths.appSrc, 
   loaders: ["style", "css", "scss"] 
}, 

所以加载器数组的开头现在看起来像这样:

loaders: [ 
      // Process JS with Babel. 
      { 
        test: /\.(js|jsx)$/, 
        include: paths.appSrc, 
        loader: 'babel', 
        query: require('./babel.dev') 
      }, 
      // "postcss" loader applies autoprefixer to our CSS. 
      // "css" loader resolves paths in CSS and adds assets as dependencies. 
      // "style" loader turns CSS into JS modules that inject <style> tags. 
      // In production, we use a plugin to extract that CSS to a file, but 
      // in development "style" loader enables hot editing of CSS. 
      { 
        test: /\.css$/, 
        loader: 'style!css!postcss' 
      }, 
      // LOAD & COMPILE SCSS 
      { 
        test: /\.scss$/, 
        include: paths.appSrc, 
        loaders: ["style", "css", "scss"] 
      }, 

现在在我的 jsx 中,当我尝试导入 scss 文件时:

import './assets/app.scss'; 

我收到错误:

Uncaught Error: Cannot find module "./assets/app.scss"

所以我的配置一定是错误的,因为我无法加载 .scss 文件。如何调整配置以在弹出的 create-react-app 中加载 .scss 文件?

请您参考如下方法:

检查第一个加载器,首先它获取所有文件,并排除其他加载器文件

loaders: [ 
        { 
            exclude: [ 
                /\.html$/, 
                /\.(js|jsx)$/, 
                /\.css$/, 
                /\.json$/, 
                /\.svg$/ 
            ], 
            loader: 'url', 
            query: { 
                limit: 10000, 
                name: 'static/media/[name].[hash:8].[ext]' 
            } 
        }, 

所以添加

/\.sass$/, 
/\.scss$/, 

排除,似乎解决了我遇到的同样问题:D


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!