./node_modules/.bin/encore dev - выполняя данную команду ничего не происходит и терминал ругается на точку.
Если же выполнить данную команду npm run dev, то файлы компилируются.
Error: ./node_modules/bootstrap/dist/js/bootstrap.min.js Error: Can't resolve 'jquery' in '/var/www/sites/edu/symfony4.loc/node_modules/bootstrap/dist/js'
npm WARN [email protected] requires a peer of [email protected] - 3 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of popper.js@^1.14.7 but none is installed. You must install peer dependencies yourself.
Error: ./node_modules/bootstrap/dist/js/bootstrap.min.js Error: Can't resolve 'jquery' in '/var/www/sites/edu/symfony4.loc/node_modules/bootstrap/dist/js'
npm install jquery
npm install popper.js
./node_modules/.bin/encore dev
Build successful
Но стили bootstrapa так и не внедрились в страницу и не появились в папке public/build - там остался тот же самый app.css с несколькими строками
Правда появились папки vendors~js и vendors~css
Я подключил вот так - <link rel="stylesheet" href="{{ asset('build/vendors~css/app.css') }}">
и bootstrap-стили сработали. Но мои стили - нигде не проявляются
Естественно, вместе с заменой путей, скопировал и саму папку bootstrap в assets. Скомпилировало удачно. То есть, кроме надписи, что все удачно, еще и файл public/build/css/app.css содержит bootstrap-код. А до этого пробовал менять права на папку node_modules, переустанавливал npm и сам nodejs - все было без толку.
"_Поэтому запускать вы можете так: ./nodemodules/.bin/encore dev" -ерунда, это вообще не команда.
если уж на то пошло то: cd node_modules/.bin && encore dev
--но это дает ошибку. Правильно получилось когда сделал по "родной" симфони документации: поставил Yarn (глобально, так сам выбрал) и потом просто в корне проекта: yarn encore dev
--и нормально пробилдилось.
Если по какой-то причине webpack ругается, что нет какого-то файла, открываем терминал в /node_modules/bootstrap и выполняем команду npm install
npm установит необходимые для bootstrap зависимости.
Далее открываем терминал в папке проекта и выполняем команду ./node_modules/.bin/encore dev
Видим на экране монитора
webpack compiled successfully
и радуемся жизни!
Для нормального отображения форм в twig предусмотрен шаблон форм с поддержкой bootstrap, для этого в конфигурационный файл config/packages/twig.yaml нужно прописать twig:
form_themes: ['bootstrap_4_layout.html.twig'].
./node_modules/.bin/encore dev - выполняя данную команду ничего не происходит и терминал ругается на точку.
Если же выполнить данную команду npm run dev, то файлы компилируются.
Почему так?
Error: ./node_modules/bootstrap/dist/js/bootstrap.min.js Error: Can't resolve 'jquery' in '/var/www/sites/edu/symfony4.loc/node_modules/bootstrap/dist/js'
npm WARN [email protected] requires a peer of [email protected] - 3 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of popper.js@^1.14.7 but none is installed. You must install peer dependencies yourself.
npm install [email protected]
npm install popper.js@^1.14.7
./node_modules/.bin/encore dev
Error: ./node_modules/bootstrap/dist/js/bootstrap.min.js Error: Can't resolve 'jquery' in '/var/www/sites/edu/symfony4.loc/node_modules/bootstrap/dist/js'
npm install jquery
npm install popper.js
./node_modules/.bin/encore dev
Build successful
Но стили bootstrapa так и не внедрились в страницу и не появились в папке public/build - там остался тот же самый app.css с несколькими строками
Правда появились папки vendors~js и vendors~css
Я подключил вот так - <link rel="stylesheet" href="{{ asset('build/vendors~css/app.css') }}">
и bootstrap-стили сработали. Но мои стили - нигде не проявляются
Попробовал поменять очереедность:
Это не помогло.
Вернул <link rel="stylesheet" href="{{ asset('build/css/app.css') }}">
Там опять таки только мои стили, без bootstrap
[serge@serge symfony4.loc]$ ./node_modules/.bin/encore dev
Running webpack ...
Закрыл вопрос с генерацией файлов стилей и js таким способом:
webpack.config.js:
Вот это вот:
Заменил на вот это вот:
Естественно, вместе с заменой путей, скопировал и саму папку bootstrap в assets. Скомпилировало удачно. То есть, кроме надписи, что все удачно, еще и файл public/build/css/app.css содержит bootstrap-код. А до этого пробовал менять права на папку node_modules, переустанавливал npm и сам nodejs - все было без толку.
"_Поэтому запускать вы можете так: ./nodemodules/.bin/encore dev" -ерунда, это вообще не команда.
если уж на то пошло то: cd node_modules/.bin && encore dev
--но это дает ошибку. Правильно получилось когда сделал по "родной" симфони документации: поставил Yarn (глобально, так сам выбрал) и потом просто в корне проекта: yarn encore dev
--и нормально пробилдилось.
Если тоже ничего не получается и ошибки лезут уже из под крышки ноута, то Вам сюда -> https://symfony.com/doc/current/the-fast-track/ru/22-encore.html
P.S. Проходя этот курс не нужно скупиться на git commit
Если по какой-то причине webpack ругается, что нет какого-то файла, открываем терминал в /node_modules/bootstrap и выполняем команду
npm install
npm установит необходимые для bootstrap зависимости.
Далее открываем терминал в папке проекта и выполняем команду
./node_modules/.bin/encore dev
Видим на экране монитора
webpack compiled successfully
и радуемся жизни!
Для нормального отображения форм в twig предусмотрен шаблон форм с поддержкой bootstrap, для этого в конфигурационный файл config/packages/twig.yaml нужно прописать twig:
form_themes: ['bootstrap_4_layout.html.twig'].
Encore - это "обёртка" Симфони для пакета Webpack.
Сам Webpack использует npm.
Symfony 6.1
Собс-но всё...
bootstrap подключён, свои стили пишем в assets/styles/app.css...
Не забываем после изменения их компилировать:
./node_modules/.bin/encore dev
Кстати, результат можно посмотреть в public/build/...
Symfony 6.1
Подключение Bootstrap:
Ставим Bootstrap
Переименовываем app.css в app.scss. В нём добавляем
Внимательно читаем на что ругается ( там д.б. строка с установкой sass-loader)