Я новичок в JSLand и React. У меня более 10 лет опыта в Python и Flask с основным упором на бэкэнд и очень мало HTML + JS, но без CSS. Я начал работать над react и js около 6 недель назад и делал простые приложения с помощью react, которые не требовали особого стиля. Однако теперь мне нужно создать проект приличного размера с React, используя втулку для стилизации.
Я начал с шаблона реакции 1. После прочтения scss docs и / /github.com/grommet/grommet-standalone Readme, насколько я понимаю, мне нужно внести изменения в конфигурацию webpack, чтобы загрузчик scss заработал.
Мой env - win8.1 x64, узел 6.4.0
Вот что я изменил.
установлены оба
sass-loader
иnode-sass
в
internals\webpack\webpack.dev.babel.js
изменено
cssLoaders: 'style-loader!css-loader?localIdentName=[local]__[path][name]__[hash:base64:5]&modules&importLoaders=1&sourceMap!postcss-loader',
to
cssLoaders: 'style-loader!css-loader?localIdentName=[local]__[path][name]__[hash:base64:5]&modules&importLoaders=1&sourceMap!postcss-loader!sass-loader',
Обратите внимание на дополнительный загрузчик! Sass согласно //github.com/mxstbr/react-boilerplate/blob/master/docs/css/sass.md
В
internals\webpack\webpack.base.babel.js
добавлено следующее{ test: /\.scss$/, loader: 'style!css!sass?outputStyle=compressed' }
@ строка 40 чуть ниже блока css и
sassLoader: {
includePaths: [
'./node_modules',
// this is required only for NPM < 3.
// Dependencies are flat in NPM 3+ so pointing to
// the internal grommet/node_modules folder is not needed
'./node_modules/grommet/node_modules'
]
}
@line 62 [строка 58, если вы ищете исходный код @ github в главной ветке //github.com/mxstbr/react-boilerplate/blob/master/internals/webpack/webpack.base.babel.js, +4 из-за добавлены 4 строки для блока scss]
в том же файле добавлен
'.scss'
в массивresolve.extenstions
.Теперь после этих изменений я запускаю npm start и добавляю следующую строку в
app\containers\App\index.js
Now, после этих изменений я запускаю npm start и добавляю следующую строку в app \ container \ App \ index.jsimport 'grommet/scss/vanilla/index';
согласно документации здесь //github.com/grommet/grommet-standalone
в консоли cmd.exe я получаю следующую ошибку
ERROR in ./app/containers/App/index.js
Module not found: Error: Can't resolve 'grommet/scss/vanilla/index' in 'C:\Users\coder\frontend\app\containers\App'
@ ./app/containers/App/index.js 57:0-36
@ ./app/app.js
@ multi main
Child html-webpack-plugin for "index.html":
Излишне говорить, что втулка установлена, и файл присутствует в размещенном месте с расширением scss. Конечно, я могу импортировать с расширением import 'grommet/scss/vanilla/index.scss
, тогда я получаю следующую ошибку
ERROR in ./~/css-loader!./~/style-loader!./~/css-loader!./~/sass-loader?outputStyle=compressed!./~/grommet/scss/vanilla/index.scss Module build failed: Unknown word (5:1)
3 | // load the styles 4 | var content = require("!!./../../../css-loader/index.js!./../../../sass-loader/index.js?outputStyle=compressed!./index.scss");
> 5 | if(typeof content === 'string') content = [[module.id, content, '']];
| ^ 6 | // add the styles to the DOM 7 | var update = require("!./../../../style-loader/addStyles.js")(content, {}); 8 | if(content.locals) module.exports = content.locals;
@ ./~/grommet/scss/vanilla/index.scss 4:14-189 13:2-17:4 14:20-195
Я исчерпал свои навыки работы с google fu, чтобы исправить это. Есть ли что-то очень очевидное, чего мне здесь не хватает? Похоже, что загрузчик scss не работает. Любые направления будут очень полезны. Если вы успешно использовали втулку с реактивным шаблоном, опубликуйте внесенные вами изменения.
PS: SO сообщает мне, что я не могу опубликовать более двух ссылок, поэтому я изменил ссылки, чтобы исключить https: из URL-адресов, пожалуйста, добавьте их вручную, извините за проблемы.