Есть ли способ использовать sass/scss для таблиц стилей при использовании Phoenix Framework? А если есть, то как?
Как использовать SASS/SCSS с фениксом?
Ответ 1
В инфраструктуре Phoenix используется brunch для конвейера активов.
Из docs:
Вместо того, чтобы внедрять собственный конвейер активов, Phoenix использует Brunch, быстрый и удобный для разработчиков инструмент для создания активов. Phoenix поставляется с конфигурацией по умолчанию для Brunch, и она будет работать из коробки, но ее очень легко свести к нашим потребностям, добавить поддержку для различных языков script и стиля, таких как CoffeeScript, TypeScript или LESS.
Чтобы добавить поддержку SASS, добавьте "sass-brunch" в свой пакет package.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
.
Феникс-фреймворк также поддерживает управление активами без бранча по умолчанию.
При создании нового проекта:
mix phoenix.new --no-brunch my_project
создаст проект без конфигурации бранча. Вам нужно настроить систему, которая может скопировать встроенные активы в priv/static/
, а также следить за вашими исходными файлами, чтобы автоматическая компиляция при каждом изменении. Подробнее читайте docs.
Ответ 2
Здесь рабочий демонстрационный репо с шагами, которые я принял, совершает:
https://github.com/sergiotapia/phoenix-sass-example
Чтобы использовать SASS/SCSS, вам необходимо установить пакет sass-brunch
node.
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
будут работать без проблем.
Ответ 3
Google застал меня здесь, а ответ @emaillenin не работал (я использую по умолчанию Phoenix 1.0.4), поэтому мне пришлось найти что-то еще.
Трюк состоит в том, чтобы сделать
npm install --save [email protected]^1.9.2
По-видимому, sass-brunch
сломал что-то после 2.0 и больше не работает с версией brunch
, поставляемой с фениксом.
Надеюсь, что это поможет!
Ответ 4
В некоторых ответах здесь предлагается изменить 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