Escolar Documentos
Profissional Documentos
Cultura Documentos
Fernanda
Passos
1. Instalar Node.js
5. Configurar o projeto
1. Instalar Node.js
Acesse https://nodejs.org/ e procure a melhor forma de instalar o Node para você.
Node.js é o ambiente JavaScript do lado do servidor no qual o Gulp é executado. O
npm está incluído no Node.
node -v
Este é o fim da instalação global! Nenhum destes passos terá de ser repetido. A partir
daqui, vamos começar a configurar o nosso projeto local.
Para instalar o Node localmente, você precisa de um arquivo package.json. Você pode
criar este arquivo manualmente, ou gerar um. Vamos gerar um para que você tenha
uma ideia de como ele funciona. Digite na linha de comando:
npm init
{
"name": "site",
"version": "1.0.0",
"description": "Iniciando com Gulp",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"gulp",
"sass"
],
"author": "Fernanda Leite",
"license": "MIT"
}
Após terminado, você verá que um diretório node_modules foi criado. Para o bem de
sua própria sanidade, evite descer até o buraco de coelho chamado node_modules;
Você pode nunca encontrar seu caminho de volta.
Isso já fará um fluxo de trabalho interessante — você pode escrever SCSS sem se
preocupar com a adição de prefixos ou minificar manualmente o código, e sourcemaps
irá ajudá-lo a encontrar onde o CSS se origina em seus arquivos. Instale os quatro de
uma vez com:
Se você verificar o seu package.json, você notará que uma nova seção foi adicionada.
"devDependencies": {
"gulp": "^3.9.1",
"gulp-autoprefixer": "^4.0.0",
"gulp-cssnano": "^2.1.2",
"gulp-sass": "^3.1.0",
"gulp-sourcemaps": "^2.6.0"
}
Estes são todos os pacotes do Node que você instalou.
5. Configurar o projeto
A última coisa que precisamos fazer é configurar um arquivo chamado gulpfile.js, que é
um arquivo JavaScript que irá definir todo processo de execução de tarefas.
Crie um arquivo gulpfile.js. Nele, iremos definir uma variável para cada requisição de
plugin.
'use strict';
gulp.task('workflow', function () {
gulp.src('./src/sass/**/*.scss')
.pipe(gulp.dest('./dist/css/'))
});
.pipe(gulp.dest('./dist/css/'))
});
Cada plugin tem um arquivo readme, em seus repositórios GitHub, que explica como
usá-lo. No entanto, a maioria deles são bastante simples. Cada tarefa Gulp está em uma
função pipe. Acima, você pode ver que estou iniciando sourcemaps, iniciando Sass com
log de erro, adicionando prefixos automáticos para as duas últimas versões dos
navegadores, minificando o CSS e escrevendo o sourcemaps no mesmo diretório como
o CSS de saída.
Finalmente, vou definir a tarefa Gulp padrão como uma tarefa de “monitoramento” —
o Gulp observará quaisquer alterações no diretório especificado e será executado se
alguma alteração tiver sido feita.
gulp.task('default', function () {
gulp.watch('./src/sass/**/*.scss', ['workflow']);
});
Arquivo completo:
'use strict';
gulp.task('workflow', function () {
gulp.src('./src/sass/**/*.scss')
.pipe(sourcemaps.init())
.pipe(sass().on('error', sass.logError))
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(cssnano())
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('./dist/css/'))
});
gulp.task('default', function () {
gulp.watch('./src/sass/**/*.scss', ['workflow']);
});
Agora, para testar este código, vou criar três arquivos .scss simples — principal.scss,
_variaveis.scss e _suporte.scss na pasta src/sass
principal.scss
// Componentes
@import "suporte";
_variaveis.scss
// Tipografia
$font-style: normal;
$font-variant: normal;
$font-weight: normal;
$font-color: #222;
$font-size: 1rem;
$line-height: 1.5;
$font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
_suporte.scss
// Define tipografia
html {
font: $font-style $font-variant $font-weight #{$font-size}/#
{$line-height} $font-family;
}
// Centraliza verticalmente qualquer coisa
.vertical-center {
display: flex;
align-items: center;
justify-content: center;
}
Pronto! Digite gulp na linha de comando para iniciar o processo, e ele entrará em
execução. A partir de agora, você poderá alterar qualquer arquivo da sua pasta SASS, e
ele irá automaticamente gerar um css minificado na pasta dist, te poupando trabalho.