Inspirado no Middleman, este Node.js Toolchain é escrito com tijolos e uma coleção de plugins para permitir aplicativos da web de autoria rápida se estática.
O foco aqui é desenvolver rapidamente e implantar aplicativos mais pesados no CSS ou JavaScript, alavancando ferramentas que permitem a menor quantidade de digitação para fazer o trabalho (por exemplo, menos, cafetycript, jade). Finalmente, para otimizar o gerenciamento de arquivos, seus aplicativos carregam o mais rápido possível (presumivelmente por meio de alguns CDN).
Primeiro, você precisa instalar o servidor systatic. É realmente apenas um servidor Bricksjs+Servitude com um monte de caminhos e modelos predefinidos.
npm install systatic -g
systatic new my_proj
cd my_proj
systatic
O último comando é executado no servidor, por porta padrão 3000 (como tijolos, você pode alterar a porta com --port ).
O projeto gerado padrão virá com um arquivo config.json. Este arquivo define várias combinações de origem e plug -in. Geralmente, você deve seguir as configurações padrão, mas se desejar alterar qualquer coisa (por exemplo, altere a rota JavaScripts de /javascripts para /js ) altere esse arquivo.
Como o objetivo é gerar um site estático, o próximo comando que você executa será build . Isso removerá a necessidade de um servidor de aplicativos como o NodeJS e permitirá que você basta despejar os arquivos estáticos em algum lugar como o CloudFront.
Ele ordena que o local estático construa em fases, semelhante a sistemas de construção maiores, como o Maven.
Estágios (executando um estágio executa todos os estágios):
A escolha de uma fase executará todos os plugins anexados e incluindo essa fase.
systatic merge
Limpa o diretório de saída, crie o recurso HTML, crie os ativos e mescla -os em arquivos mínimos.
systatic test
Faz a mesma coisa, mas também executa qualquer teste de integração estática opcional (atualmente sem implementações, mas considerando algo como Qunit)
Com esse conteúdo estático gerado, em seguida, você deseja implantar em algum servidor, Git Repo, CDN ... qualquer que seja.
systatic publish
Estou pensando em reimplementar os plugins codificados para trabalhar com plugins NPM, que podem ser configurados por projeto. Isso é para permitir que os plugins de terceiros adicionem seu próprio estágio à cadeia de ferramentas Build/Render.
Pensamentos atuais:
Um exemplo pode ser se alguém quisesse adicionar uma função para comprimir um conjunto de ícones usados como CSS em sprites e passar essas informações para a próxima ação (que estaria ligada ao estágio da compactação).