AdonisRC 文章
.adonisrc.json
文件存储在项目的根目录中。它配置了你的 AdonisJS 应用程序的工作区和一些运行时设置。
该文件仅包含运行应用程序所需的最少配置。但是,你可以通过运行以下 Ace 命令来查看完整的文件内容。
node ace dump:rcfile
// 配置项:配置结果
{
"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#
typescript
属性会提醒框架和 Ace 命令,你的应用程序正在使用 TypeScript。目前,此值始终设置为 true
。但是,我们之后也将允许使用 JavaScript 编写应用程序。
directories#
directories
是用于确定已知目录及其预配置路径的对象。你可以更改路径以符合你的要求。
同样, Ace 的所有 make
命令在创建文件之前都会引用 .adonisrc.json
文件。
{
"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#
exceptionHandlerNamespace
是处理 HTTP 请求期间发生的异常的类的命名空间。
{
"exceptionHandlerNamespace": "App/Exceptions/Handler"
}
preloads#
preloads
是启动应用程序时要加载的文件数组。这些文件在服务器启动后立即加载。
你可以定义加载文件的环境。有效的选项是:
web
环境是指为 HTTP 服务器启动的进程。console
环境是指除了repl
命令之外的 Ace 命令。repl
环境是指使用node ace repl
命令启动的进程。- 最后,
test
环境是为将来 AdonisJS 将拥有内置的测试运行程序而保留的。
你也可以将该文件设为可选,如果你的磁盘上缺失该文件,我们将忽略它。
备注:
你可以通过运行node ace make:prldfile
命令来创建和注册预加载文件。
{
"preloads": [
{
"file": "./start/routes",
"optional": false,
"environment": [
"web",
"console",
"test"
]
},
]
}
namespaces#
namespaces
是已知实体的命名空间组成的对象。
例如,你可以将控制器的命名空间从 App/Controllers/Http
更改为 App/Controllers
并将控制器保留在 ./app/Controllers
目录中。
{
"namespaces": {
"controllers": "App/Controllers"
}
}
aliases#
aliases
属性允许你为特定目录定义导入别名。定义别名后,你将能够从别名目录的根目录导入文件。
在下面的示例中,App
是 ./app
目录的别名,其余是指定目录的文件路径。
import 'App/Models/User'
AdonisJS 别名仅用于运行时。你还必须在 tsconfig.json
文件中注册相同的别名,TypeScript 编译器才能工作。
{
"compilerOptions": {
"paths": {
"App/*": [
"./app/*"
],
}
}
}
metaFiles#
metaFiles
数组接受你希望 AdonisJS 在创建生产构建时复制到 build
文件夹的文件。
- 你可以将文件路径定义为 glob 模式,我们将复制该模式的所有匹配文件。
- 你还可以指示开发服务器重新加载匹配模式更改中的任何文件。
{
"metaFiles": [
{
"pattern": "public/**",
"reloadServer": false
},
{
"pattern": "resources/views/**/*.edge",
"reloadServer": false
}
]
}
commands#
指向 查阅 / 索引 Ace 命令的路径数组。你可以定义 ./command
之类的相对路径,也可以定义安装包的路径。
{
"commands": [
"./commands",
"@adonisjs/core/build/commands"
]
}
commandsAliases#
命令别名的键值对。这通常是为了帮助你为难以键入或记住的命令,创建令人难忘的别名。
{
"commandsAliases": {
"migrate": "migration:run"
}
}
你还可以通过添加多个条目来定义多个别名。
{
"commandsAliases": {
"migrate": "migration:run",
"up": "migration:run"
}
}
tests#
test
对象包含应用程序使用的测试文件的集合。你可以根据你的应用程序要求添加 / 删除文件。
{
"tests": {
"suites": [
{
"name": "functional",
"files": [
"tests/functional/**/*.spec.ts"
],
"timeout": 30000
}
]
}
}
providers#
在应用程序启动周期中加载的一组服务提供程序,此数组中提到的提供程序已加载到所有环境中。
{
"providers": [
"./providers/AppProvider",
"@adonisjs/core"
],
}
aceProviders#
提供 ace 命令的数组。
{
"aceProviders": [
"@adonisjs/repl"
]
}
testProviders#
仅在测试期间加载的提供程序数组。
{
"testProviders": [
"@japa/preset-adonis/TestsProvider"
]
}
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。