Как использовать SASS/SCSS с Phoenix framework?
Есть ли способ использовать sass/scss для таблиц стилей при использовании Phoenix Framework? А если есть, то как ?
4 ответа:
Phoenix framework используетбранч для конвейера активов.
Из документов:
Вместо реализации собственного конвейера активов Phoenix использует Brunch, быстрый и удобный для разработчиков инструмент сборки активов. Phoenix поставляется с конфигурацией по умолчанию для бранча, и он будет работать из коробки, но очень легко согнуть его в соответствии с нашими потребностями, добавить поддержку различных языков сценариев и стилей, таких как CoffeeScript, TypeScript или меньше.
Добавить поддержка SASS, добавьте "Sass-бранч" в свой пакет.json в корне проекта как:
{ "repository": { }, "dependencies": { "brunch": "^1.8.1", "babel-brunch": "^5.1.1", "clean-css-brunch": ">= 1.0 < 1.8", "css-brunch": ">= 1.0 < 1.8", "javascript-brunch": ">= 1.0 < 1.8", "sass-brunch": "^1.8.10", "uglify-js-brunch": ">= 1.0 < 1.8" } }
Затем запустите
npm install
.Phoenix framework также поддерживает управление активами без бранча по умолчанию.
При создании нового проекта:
Микс Феникс.new --no-brunch my_project
Создаст проект без конфигурации бранча. Вам нужно настроить систему, которая может копировать встроенные активы в
priv/static/
, а также следить за исходными файлами, чтобы сделать их автоматическими компиляция по каждому изменению. Прочитайте docs для получения дополнительной информации.
Вот рабочий демо-РЕПО с шагами, которые я сделал в качестве коммитов:
Https://github.com/sergiotapia/phoenix-sass-example
Чтобы использовать SASS/SCSS, необходимо установить пакет узла
sass-brunch
.npm install --save sass-brunch
Затем отредактируйте
brunch-config.js
так, чтобы ваш раздел плагинов выглядел следующим образом:// Configure your plugins plugins: { babel: { // Do not use ES6 compiler in vendor code ignore: [/web\/static\/vendor/] }, sass: { mode: "native" // This is the important part! } },
Как только вы это сделаете, любые файлы.sass
или.scss
будут работать без проблем.
Google привел меня сюда, и ответ @emaillenin не сработал (я использую default Phoenix 1.0.4), поэтому мне пришлось найти что-то еще.
Фокус в том, чтобы сделать
npm install --save sass-brunch@^1.9.2
Очевидно,
sass-brunch
сломал что-то после 2.0, и это больше не работает с версиейbrunch
, поставляемой с phoenix.Надеюсь, это поможет!
Некоторые ответы здесь предлагают модифицировать
brunch-config.js
, другиеpackage.json
. Для Phoenix 1.3 проблемы совместимости решены, можно использовать какnpm install
, так иbrunch
.Добавить
sass
кbrunch-config
plugins
раздел:// brunch-config.js plugins: { sass: { mode: "native" // This is the important part! } }
Добавить
sass
кpackage.json
devDependencies
раздел:// package.json { "devDependencies": { "sass-brunch": "2.10.4" // check latest version on sass-brunch page } }
Затем
cd assets npm install