Arquivo AdonisRC
O arquivo .adonisrc.json
é armazenado dentro da raiz do seu projeto. Ele configura o espaço de trabalho e algumas das configurações de tempo de execução do seu aplicativo AdonisJS.
O arquivo contém apenas a configuração mínima necessária para executar seu aplicativo. No entanto, você pode visualizar o conteúdo completo do arquivo executando o seguinte comando Ace.
node ace dump:rcfile
// Saída:
{
"typescript": true,
"directories": {
"config": "config",
"public": "public",
"contracts": "contracts",
"providers": "providers",
"database": "database",
"migrations": "database/migrations",
"seeds": "database/seeders",
"resources": "resources",
"views": "resources/views",
"start": "start",
"tmp": "tmp",
"tests": "tests"
},
"exceptionHandlerNamespace": "App/Exceptions/Handler",
"preloads": [
{
"file": "./start/routes",
"optional": false,
"environment": [
"web",
"console",
"test"
]
},
{
"file": "./start/kernel",
"optional": false,
"environment": [
"web",
"console",
"test"
]
},
{
"file": "./start/views",
"optional": false,
"environment": [
"web",
"console",
"test"
]
},
{
"file": "./start/events",
"optional": false,
"environment": [
"web"
]
}
],
"namespaces": {
"models": "App/Models",
"middleware": "App/Middleware",
"exceptions": "App/Exceptions",
"validators": "App/Validators",
"httpControllers": "App/Controllers/Http",
"eventListeners": "App/Listeners",
"redisListeners": "App/Listeners"
},
"aliases": {
"App": "app",
"Config": "config",
"Database": "database",
"Contracts": "contracts"
},
"metaFiles": [
{
"pattern": "public/**",
"reloadServer": false
},
{
"pattern": "resources/views/**/*.edge",
"reloadServer": false
}
],
"commands": [
"./commands",
"@adonisjs/core/build/commands",
"@adonisjs/repl/build/commands"
],
"commandsAliases": {
},
"tests": {
"suites": [
{
"name": "functional",
"files": [
"tests/functional/**/*.spec.ts"
],
"timeout": 30000
}
]
},
"providers": [
"./providers/AppProvider",
"@adonisjs/core",
"@adonisjs/session",
"@adonisjs/view"
],
"aceProviders": [
"@adonisjs/repl"
],
"testProviders": [
"@japa/preset-adonis/TestsProvider"
]
}
typescript
A propriedade typescript
informa ao framework e aos comandos Ace que seu aplicativo está usando TypeScript. Atualmente, esse valor é sempre definido como true
. No entanto, mais tarde permitiremos que os aplicativos também sejam escritos em JavaScript.
directories
Um objeto de diretórios conhecidos e seus caminhos pré-configurados. Você pode alterar o caminho para corresponder aos seus requisitos.
Além disso, todos os comandos Ace make
fazem referência ao arquivo .adonisrc.json
antes de criar o arquivo.
{
"directories": {
"config": "config",
"public": "public",
"contracts": "contracts",
"providers": "providers",
"database": "database",
"migrations": "database/migrations",
"seeds": "database/seeders",
"resources": "resources",
"views": "resources/views",
"start": "start",
"tmp": "tmp",
"tests": "tests"
}
}
exceptionHandlerNamespace
O namespace para a classe que manipula exceções ocorridas durante uma solicitação HTTP.
{
"exceptionHandlerNamespace": "App/Exceptions/Handler"
}
preloads
Uma matriz de arquivos para carregar no momento da inicialização do aplicativo. Os arquivos são carregados logo após a inicialização dos provedores de serviço.
Você pode definir o ambiente no qual carregar o arquivo. As opções válidas são:
- O ambiente
web
se refere ao processo iniciado para o servidor HTTP. - O ambiente
console
se refere aos comandos Ace, exceto o comandorepl
. - O ambiente
repl
se refere ao processo iniciado usando o comandonode ace repl
. - Finalmente, o ambiente
test
é reservado para o futuro, quando o AdonisJS terá o executor de teste integrado.
Além disso, você pode marcar o arquivo como opcional, e o ignoraremos se o arquivo estiver faltando no disco.
NOTA
Você pode criar e registrar um arquivo pré-carregado executando o comando node ace make:prldfile
.
{
"preloads": [
{
"file": "./start/routes",
"optional": false,
"environment": [
"web",
"console",
"test"
]
},
]
}
namespaces
Um objeto de namespaces para as entidades conhecidas.
Por exemplo, você pode alterar o namespace do controlador de App/Controllers/Http
para App/Controllers
e manter os controladores dentro do diretório ./app/Controllers
.
{
"namespaces": {
"httpControllers": "App/Controllers"
}
}
aliases
A propriedade aliases
permite que você defina os aliases de importação para diretórios específicos. Após definir o alias, você poderá importar arquivos da raiz do diretório aliases.
No exemplo a seguir, o App
é um alias para o diretório ./app
, e o restante é o caminho do arquivo do diretório fornecido.
import 'App/Models/User'
Os aliases do AdonisJS são apenas para tempo de execução. Você também terá que registrar o mesmo alias dentro do arquivo tsconfig.json
para que o compilador TypeScript funcione.
{
"compilerOptions": {
"paths": {
"App/*": [
"./app/*"
],
}
}
}
metaFiles
O array metaFiles
aceita os arquivos que você deseja que o AdonisJS copie para a pasta build
ao criar a compilação de produção.
- Você pode definir os caminhos dos arquivos como um padrão glob, e copiaremos todos os arquivos correspondentes para esse padrão.
- Você também pode instruir o servidor de desenvolvimento a recarregar quaisquer arquivos dentro das alterações do padrão correspondente.
{
"metaFiles": [
{
"pattern": "public/**",
"reloadServer": false
},
{
"pattern": "resources/views/**/*.edge",
"reloadServer": false
}
]
}
commands
Um array de caminhos para procurar/indexar comandos Ace. Você pode definir um caminho relativo como ./command
ou caminho para um pacote instalado.
{
"commands": [
"./commands",
"@adonisjs/core/build/commands"
]
}
commandsAliases
Um par de chave-valor de aliases de comando. Isso geralmente ajuda a criar aliases memoráveis para os comandos que são mais difíceis de digitar ou lembrar.
{
"commandsAliases": {
"migrate": "migration:run"
}
}
Você também pode definir vários aliases adicionando várias entradas.
{
"commandsAliases": {
"migrate": "migration:run",
"up": "migration:run"
}
}
tests
O objeto test
contém a coleção de suítes de teste usadas pelo seu aplicativo. Você pode adicionar/remover suítes de acordo com os requisitos do seu aplicativo.
{
"tests": {
"suites": [
{
"name": "functional",
"files": [
"tests/functional/**/*.spec.ts"
],
"timeout": 30000
}
]
}
}
providers
Uma matriz de provedores de serviço para carregar durante o ciclo de inicialização do aplicativo. Os provedores mencionados dentro desta matriz são carregados em todos os ambientes.
{
"providers": [
"./providers/AppProvider",
"@adonisjs/core"
],
}
aceProviders
Uma matriz de provedores que requer os comandos ace.
{
"aceProviders": [
"@adonisjs/repl"
]
}
testProviders
Uma matriz de provedores carregada somente durante o teste.
{
"testProviders": [
"@japa/preset-adonis/TestsProvider"
]
}