Ignitor
O Ignitor alimenta o bootstrapping de um aplicativo AdonisJs.
Neste guia, aprendemos sobre alguns dos recursos e funcionalidades oferecidos pelo pacote Ignitor para gerenciar nosso código.
Ganchos
O Ignitor expõe vários ganchos para personalizar o comportamento do seu aplicativo.
Esses ganchos são registrados dentro do arquivo start/hooks.js. Sinta-se à vontade para criar este arquivo se ele ainda não existir.
Aqui está um exemplo de como usar hooks.after para registrar uma visualização global depois que todos os provedores forem inicializados:
// .start/hooks.js
const { hooks } = require('@adonisjs/ignitor')
hooks.after.providersBooted(() => {
const View = use('View')
View.global('time', () => new Date().getTime())
})Semelhante a hooks.after, você também pode usar hooks.before para registrar a lógica do aplicativo antes que um gancho ocorra.
Abaixo está a lista de ganchos disponíveis:
| Evento de gancho | Descrição |
|---|---|
| providersRegistered | Antes/depois de todos os provedores terem se registrado |
| providersBooted | Antes/depois de todos os provedores terem inicializado |
| preloading | Antes/depois de pré-carregar arquivos registrados |
| httpServer | Antes/depois de o servidor HTTP ter iniciado |
| aceCommand | Antes/depois de o comando ace ser executado |
Pré-carregamento de arquivos
O Ignitor facilita o pré-carregamento de arquivos depois que o servidor HTTP foi iniciado.
Para fazer isso, modifique o arquivo server.js e adicione o método preLoad:
new Ignitor(require('@adonisjs/fold'))
.appRoot(__dirname)
.preLoad('start/fire-zombies')
.fireHttpServer()
.catch(console.error)OBSERVAÇÃO
O método preLoad aceita um caminho raiz de aplicativo relativo ou um caminho absoluto para qualquer arquivo JavaScript.
Para carregar vários arquivos, chame o método preLoad várias vezes:
new Ignitor(require('@adonisjs/fold'))
.preLoad('')
.preLoad('')
// etcMétodos do Ignitor
Abaixo está a lista de métodos disponíveis na instância ignitor.
appRoot(location)
Defina o caminho absoluto para a raiz do aplicativo:
ignitor
.appRoot(__dirname)modulesRoot(location)
Defina o caminho absoluto para o diretório pai node_modules do aplicativo.
Por padrão, o caminho definido em appRoot() é usado:
ignitor
.modulesRoot(path.join(__dirname, '..'))appFile(location)
Defina o caminho relativo para o arquivo do aplicativo.
Por padrão, o arquivo start/app.js é usado:
ignitor
.appFile('start/app.js')loadCommands()
Instrua o Ignitor a carregar provedores e comandos ace.
Isso é feito ao executar um comando ace, no entanto, você também pode carregar comandos ao iniciar o servidor HTTP:
ignitor
.loadCommands()