Como compilar arquivos .scss SASS na maioria dos métodos básicos (sem framework)

O que compila?

Compilar arquivos Sass transforma folhas de estilo com sintaxe específica de Sass, como agrupamento de seletores e mixins em CSS normais que podem ser analisados pelos navegadores.

Como instruí-lo para compilar os arquivos .scss na pasta acima na pasta public/build/css/?

Desde que você já esteja usando o Bower que é um pacote Node.js, presumo que você não tenha problemas em usar o pacote Node.js node-sass em vez da versão original Ruby.

Primeiro, instale o pacote usando npm i -D node-sass. Depois, crie um novo script dentro do seu projeto package.json:

"compile-sass": "node-sass resources/assets/sass/main.scss public/build/css/main.css"

main.scss é agora o seu ponto de entrada onde você importa o Bootstrap e suas outras folhas de estilo.

// I don't know whether this path is correct// Just find out the location of "_bootstrap.scss" and then create the relative path@import "../../../bower_components/bootstrap-sass/assets/stylesheets/_bootstrap.scss";/* Your custom SCSS */

Finalmente, para realmente executar a compilação, execute npm run compile-sass no seu terminal.

Preciso configurar novos arquivos .scss ou posso configurá-los de forma a apenas adicioná-los a essa pasta sass?

Desde que nunca diga a node-sass para “compilar tudo dentro desta pasta” e em vez disso use um ficheiro de ponto de entrada (main.js), quando quiser incluir um novo ficheiro basta adicionar uma directiva @import com um caminho relativo a ele.

Bonus, como dizer para minificar o ficheiro de saída, ou não (para que eu possa experimentar com ambas as maneiras)?

Para minificar o ficheiro resultante main.css, eu recomendo csso. Você pode instalar seu pacote CLI usando npm i -D csso-cli e então adicionar outro script ao seu package.json:

"minify-css": "csso public/build/css/main.css public/build/css/main.min.css"

Você pode então executar esse script usando npm run minify-css. O arquivo minificado será gerado como main.min.css.

.

Deixe uma resposta

O seu endereço de email não será publicado.