Разрешить файл SCSS в модулях Webpack - PullRequest
0 голосов
/ 03 июля 2019

webpack.config.js

const styles = path.join(__dirname, "client/styles.scss");

module.exports = {
       resolve: {
          modules: [..., styles]
       }
    }

file.js

import base from "styles"; 

<div styleName="base.x">
...

</div>

Ошибка:

Module build failed (from ./node_modules/babel-loader/lib/index.js):                                                                             
Error: CSS module import does not exist: base                                                                                                    
    at getClassNameForNamespacedStyleName (\node_modules\babel-plugin-react-css-modules\dist\getClassN
ame.js:36:13)                                                                                                                                    
    at styleNameValue.split.filter.map.styleName (\node_modules\babel-plugin-react-css-modules\dist\ge
tClassName.js:68:14)                                                                                                                             
    at Array.map (<anonymous>)                                                                                                                   
    at exports.default (\node_modules\babel-plugin-react-css-modules\dist\getClassName.js:66:6)       
    at exports.default (\node_modules\babel-plugin-react-css-modules\dist\resolveStringLiteral.js:23:5
6)                                                                                                                                               
    at PluginPass.JSXElement (\node_modules\babel-plugin-react-css-modules\dist\index.js:193:48)      
    at newFn (\node_modules\@babel\traverse\lib\visitors.js:193:21)                                   
    at NodePath._call (\node_modules\@babel\traverse\lib\path\context.js:53:20)                       
    at NodePath.call (\node_modules\@babel\traverse\lib\path\context.js:40:17)                        
    at NodePath.visit (\node_modules\@babel\traverse\lib\path\context.js:88:12)                       
 @ ./client/routes.js 1:385-429 1:1128-1133                                                                                                      
 @ ./client/index.js                                                                                                                             

1 Ответ

0 голосов
/ 03 июля 2019

Следующий код является выдержкой из одного из моих проектов веб-пакетов. Он в основном компилирует / просматривает любые файлы scss и css.

const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const process = require('process');


module.exports = {
    module: {
        rules: [
            // ... more
            {
                test: /\.(scss|css)$/,
                use: [
                    process.env.NODE_ENV !== 'production' ? 'style-loader' : MiniCssExtractPlugin.loader,
                    {
                        loader: "css-loader",
                        options: {
                            modules: true,
                        }
                    }, 
                    {
                        loader: "sass-loader",
                        options: {
                            data: "$env: " + process.env.NODE_ENV + ";"
                        }
                    }
                ],
            },

            // ... more
        ]
    }
}

Добавьте вашу конфигурацию разрешения, и вы должны быть готовы. Но не забывайте синхронизировать стили Babel (если вы их используете) с синхронизатором css-loader localIdentName s.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...