如何使用 dub 从本地文件系统导入包?

How do I import a package from the local filesystem using dub?

我有一个使用配音的项目。我想使用供应到我的项目中的外部文件作为依赖项。我该怎么做呢?我不想把它放在我项目的 source/ 目录中。我不想将其添加为配音管理的依赖项,但我确实希望能够 import xxx.

包是这个:https://github.com/gianm/d-json,它不使用 dub 也没有 dub.json 项目文件。

  1. 通过在根目录中添加一个 dub.json 文件将包转换为 dub,其内容如下:{"name": "jsonx"}。创建一个 source 文件夹,并将 jsonx.d 移动到其中。
  2. 将文件夹放在任何你想要的地方,例如在您自己的项目旁边的顶层。
  3. 将以下依赖项添加到您的 dub.json:
    "dependencies": {
        ...
        "jsonx": {"path": "../jsonx/"}
    }
  1. 您现在可以使用 import jsonx; 在任何地方导入包。

总而言之,如果您的应用位于名为 app 的目录中,您的树应该如下所示:

.
├── app
│   ├── dub.json
│   └── source
│       └── myapp.d
└── jsonx
    ├── dub.json
    └── source
        └── jsonx.d

替代方法:创建一个 third_party 目录,将文件放在那里,然后将其添加到配音配置中的 sourcePaths(您可能会指定两个 ["third_party", "source"],因为如果您不列出默认值 source,将被覆盖。