Arquivo AdonisRC
O arquivo adonisrc.ts é usado para configurar as configurações do espaço de trabalho do seu aplicativo. Neste arquivo, você pode registrar provedores, definir aliases de comando, especificar os arquivos a serem copiados para a compilação de produção e muito mais.
ATENÇÃO
O arquivo adonisrc.ts é importado por ferramentas diferentes do seu aplicativo AdonisJS. Portanto, você não deve escrever nenhum código específico do aplicativo ou condicionais específicos do ambiente neste arquivo.
O arquivo contém a configuração mínima necessária para executar seu aplicativo. No entanto, você pode visualizar o conteúdo completo do arquivo executando o comando node ace inspect:rcfile.
node ace inspect:rcfileVocê pode acessar o conteúdo RCFile analisado usando o serviço app.
import app from '@adonisjs/core/services/app'
console.log(app.rcFile)typescript
A propriedade typescript informa ao framework e aos comandos Ace que seu aplicativo usa TypeScript. Atualmente, esse valor é sempre definido como true. No entanto, mais tarde permitiremos que os aplicativos sejam escritos em JavaScript.
directories
Um conjunto de diretórios e seus caminhos usados pelos comandos de scaffolding. Se você decidir renomear diretórios específicos, atualize seu novo caminho dentro do objeto directories para notificar os comandos de scaffolding.
{
directories: {
config: 'config',
commands: 'commands',
contracts: 'contracts',
public: 'public',
providers: 'providers',
languageFiles: 'resources/lang',
migrations: 'database/migrations',
seeders: 'database/seeders',
factories: 'database/factories',
views: 'resources/views',
start: 'start',
tmp: 'tmp',
tests: 'tests',
httpControllers: 'app/controllers',
models: 'app/models',
services: 'app/services',
exceptions: 'app/exceptions',
mails: 'app/mails',
middleware: 'app/middleware',
policies: 'app/policies',
validators: 'app/validators',
events: 'app/events',
listeners: 'app/listeners',
stubs: 'stubs',
}
}preloads
Uma matriz de arquivos para importar no momento da inicialização do aplicativo. Os arquivos são importados imediatamente após a inicialização dos provedores de serviço.
Você pode definir o ambiente no qual importar o arquivo. As opções válidas são:
- O ambiente
webse refere ao processo iniciado para o servidor HTTP. - O ambiente
consolese refere aos comandos Ace, exceto o comandorepl. - O ambiente
replse refere ao processo iniciado usando o comandonode ace repl. - Finalmente, o ambiente
testse refere ao processo iniciado para executar os testes.
NOTA
Você pode criar e registrar um arquivo de pré-carregamento usando o comando node ace make:preload.
{
preloads: [
() => import('./start/view.js')
]
}{
preloads: [
{
file: () => import('./start/view.js'),
environment: [
'web',
'console',
'test'
]
},
]
}metaFiles
A matriz metaFiles é uma coleção de arquivos que você deseja copiar para a pasta build ao criar a compilação de produção.
Esses são arquivos não TypeScript/JavaScript que devem existir na compilação de produção para que seu aplicativo funcione. Por exemplo, os modelos Edge, arquivos de idioma i18n, etc.
- padrão glob para encontrar arquivos correspondentes.
reloadServer: Recarrega o servidor de desenvolvimento quando os arquivos correspondentes mudam.
{
metaFiles: [
{
pattern: 'public/**',
reloadServer: false
},
{
pattern: 'resources/views/**/*.edge',
reloadServer: false
}
]
}commands
Uma matriz de funções para importar comandos ace de pacotes instalados. Os comandos dos seus aplicativos serão importados automaticamente e, portanto, você não precisa registrá-los explicitamente.
Veja também: Criando comandos ace
{
commands: [
() => import('@adonisjs/core/commands'),
() => import('@adonisjs/lucid/commands')
]
}commandsAliases
Um par de aliases de comando de chave-valor. Isso geralmente ajuda a criar aliases memoráveis para os comandos que são mais difíceis de digitar ou lembrar.
Veja também: Criando aliases de comando
{
commandsAliases: {
migrate: 'migration:run'
}
}Você também pode definir vários aliases para o mesmo comando.
{
commandsAliases: {
migrate: 'migration:run',
up: 'migration:run'
}
}tests
O objeto tests registra os conjuntos de testes e algumas das configurações globais para o executor de testes.
Veja também: Introdução aos testes
{
tests: {
timeout: 2000,
forceExit: false,
suites: [
{
name: 'functional',
files: [
'tests/functional/**/*.spec.ts'
],
timeout: 30000
}
]
}
}timeout: define o tempo limite padrão para todos os testes.forceExit: sai à força do processo do aplicativo assim que os testes forem concluídos. Normalmente, é uma boa prática executar uma saída elegante.suite.name: um nome exclusivo para o conjunto de testes.suite.files: Uma matriz de padrões glob para importar os arquivos de teste.suite.timeout: O tempo limite padrão para todos os testes dentro da suíte.
providers
Uma matriz de provedores de serviço para carregar durante a fase de inicialização do aplicativo.
Por padrão, os provedores são carregados em todos os ambientes. No entanto, você também pode definir uma matriz explícita de ambientes para importar o provedor.
- O ambiente
webse refere ao processo iniciado para o servidor HTTP. - O ambiente
consolese refere aos comandos Ace, exceto o comandorepl. - O ambiente
replse refere ao processo iniciado usando o comandonode ace repl. - Finalmente, o ambiente
testse refere ao processo iniciado para executar os testes.
NOTA
Os provedores são carregados na mesma ordem em que são registrados dentro da matriz providers.
{
providers: [
() => import('@adonisjs/core/providers/app_provider'),
() => import('@adonisjs/core/providers/http_provider'),
() => import('@adonisjs/core/providers/hash_provider'),
() => import('./providers/app_provider.js'),
]
}{
providers: [
{
file: () => import('./providers/app_provider.js'),
environment: [
'web',
'console',
'test'
]
},
{
file: () => import('@adonisjs/core/providers/http_provider'),
environment: [
'web'
]
},
() => import('@adonisjs/core/providers/hash_provider'),
() => import('@adonisjs/core/providers/app_provider')
]
}assetsBundler
Os comandos serve e build tentam detectar os ativos usados pelo seu aplicativo para compilar os ativos do frontend.
A detecção é realizada para vite pesquisando o arquivo vite.config.js e Webpack encore pesquisando o arquivo webpack.config.js.
No entanto, se você usar um empacotador de ativos diferente, poderá configurá-lo dentro do arquivo adonisrc.ts da seguinte forma.
{
assetsBundler: {
name: 'vite',
devServer: {
command: 'vite',
args: []
},
build: {
command: 'vite',
args: ["build"]
},
}
}name- O nome do empacotador de ativos que você usa. É necessário para fins de exibição.devServer.*- O comando e seus argumentos para iniciar o servidor de desenvolvimento.build.*- O comando e seus argumentos para criar a compilação de produção.