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"
  ]
}

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/adonisjs/5.x/fu...

译文地址:https://learnku.com/docs/adonisjs/5.x/fu...

上一篇 下一篇
贡献者:3
讨论数量: 0
发起讨论 查看所有版本


暂无话题~