Ошибка компиляции с Symfony Webpack Encore и FontAwesome
В настоящее время я пишу приложение Symfony 3.4 с Bootstrap и FontAwesome Pro. У меня есть следующий пользовательский файл.scss:
$theme-colors: (
"burnt-orange": #fa7334,
"light-blue": #67e2f5,
"dark-blue": #006f80,
"beige": #f5d5bc
);
@import "~bootstrap/scss/bootstrap";
@import "~@fortawesome/fontawesome-pro";
мой /project_root/app/Resources/js/app.js
:
import '../scss/custom.scss';
import $ from 'jquery';
global.$ = global.jQuery = $;
window.Popper = require('popper.js');
require('bootstrap');
мой webpack.config.js
:
var Encore = require('@symfony/webpack-encore');
Encore
.setOutputPath('web/build/')
.setPublicPath('/build')
.enableVersioning()
.addEntry('app', './app/Resources/assets/js/app.js')
.enableSassLoader()
.autoProvidejQuery()
.enableSourceMaps(!Encore.isProduction())
.cleanupOutputBeforeBuild()
;
module.exports = Encore.getWebpackConfig();
И соответствующий скрипт из моего package.json
:
"scripts": {
"dev": "encore dev --watch"
}
Когда я пытаюсь бежать $ npm run dev
Я получаю следующую ошибку:
Веб-пакет просматривает файлы...
ОШИБКА Не удалось скомпилировать с 1 ошибкой
10:01:31ошибка в./app/Resources/assets/scss/custom.scss
Сбой сборки модуля (из./node_modules/mini-css-extract-plugin/dist/loader.js): ModuleBuildError: Сбой сборки модуля (из./node_modules/sass-loader/lib/loader.js):
(function () {^ Неверный CSS после " */": ожидаемый селектор был "(function () {" в /home/kevin/www/diva/node_modules/@fortawesome/fontawesome-pro/js/fontawesome.js (строка 5, столбец 1) в runLoaders (/home/kevin/www/diva/node_modules/webpack/lib/NormalModule.js:286:20) в /home/kevin/www/diva/node_modules/loader-runner/lib/LoaderRunner.js:364:11 на /home/kevin/www/diva/node_modules/loader-runner/lib/LoaderRunner.js:230:18 at context.callback (/home/kevin/www/diva/node_modules/loader-runner/lib/LoaderRunner.js:111:13) в Object.render [в качестве обратного вызова] (/home/kevin/www/diva/node_modules/sass-loader/lib/loader.js:52:13) в Object.done [как обратный вызов] (/home/kevin/www/diva/node_modules/neo-async/async.js:8077:18) в options.error (/ home / kevin / www / diva / node_modules / node-sass / lib / index.js: 294: 32)
@./app/Resources/assets/js/app.js 1: 0-29
Очевидно, что ошибка связана с тем, как я пытаюсь включить FontAwesome, но я новичок в node, Bootstrap и FontAwesome, поэтому я не совсем уверен, как действовать дальше. Мне даже нужно импортировать FontAwesome? Их документы говорят просто ссылаться на модуль css/all.css
, но поскольку в той же документации говорится о сохранении модуля FontAwesome в качестве зависимости разработки, я не уверен, что он будет доступен, когда я скажу Webpack Encore скомпилировать для производства.
1 ответ
Меняя мой custom.scss
Файл к этому (обратите внимание на последнюю строку) исправил проблему:
$theme-colors: (
"burnt-orange": #fa7334,
"light-blue": #67e2f5,
"dark-blue": #006f80,
"beige": #f5d5bc
);
@import "~bootstrap/scss/bootstrap";
@import "~@fortawesome/fontawesome-pro/css/all.css";