7

在阅读文档后为打字稿定义键入新的 tsd 管理器时,我对不同来源的含义以及如何通过指定来源和版本进行安装感到困惑

例如,如果您通过以下方式搜索基础站点

typings search foundation-sites

结果是

 foundation-sites global             2016-02-11T00:39:58.000Z 1
 foundation-sites dt                 2016-03-17T12:06:54.000Z 1        http://foundation.zurb.com/

此命令typings install foundation-sites --save失败。

然后我添加了环境标志并且它起作用了,但是根据我的研究,全局和 dt 都被认为是环境的,尽管我仍然不完全理解环境在 dt 是环境和全局是环境的上下文中的含义。请参阅更详细地描述来源的页面。除了我们已经知道的 dt 之外,此页面还列出了 3 个环境

用于共享环境功能的库(环境)

env 用于编程环境类型(环境)

全球图书馆的全球(环境)

上述差异是什么意思

如果您在上面的搜索结果中有多个来源,并且只使用 -ambient 而没有指定来源,那么

1)安装了哪一个,为什么?来自 global 的日期较早或 dt 日期较晚。

您能否提供正确的安装命令来选择源和版本。请包括一个非环境存储库(如 github)与环境存储库(如 global 和 dt)的示例

2) global 和 dt source 都需要 --ambient 标志吗?

3) 只有在类型注册表的 npm 文件夹中时才会自动安装类型。

例如,我可以使用安装时刻typings install moment并且它可以工作。据我所知,它有效,因为它列在类型注册表的 npm 文件夹中。

按照 Corey 的建议运行命令typings install dt!foundation-sites

导致错误 bash: !foundation-sites: event not found

已修复:感谢 Corey——对于 bash 用户使用 \ 示例进行转义

typings install dt\!foundation-sites
4

1 回答 1

6

我认为环境意味着它来自DefinitelyTyped:

[环境] 在查找中包含肯定类型

打字文档进一步指出:

您可能想知道从使用 TSD 到 Typings 是什么感觉。使用 Typings 与使用 TSD 非常相似。您以前拥有的地方:

tsd install react --save 你现在会:

打字安装反应--环境--保存

而且我相信DefinitelyTyped 只会有任何定义的版本,因为它不支持版本控制。您需要使用以下命令指定您想要的:

typings install (with no arguments, in package directory)
typings install [<name>=]<location>

  <name>      Module name of the installed definition
  <location>  The location to read from (described below)

Valid Locations:
  [<source>!]<pkg>[@<version>][#<tag>]
  file:<path>
  github:<org>/<repo>[/<path>][#<commitish>]
  bitbucket:<org>/<repo>[/<path>][#<commitish>]
  npm:<pkg>[/<path>]
  bower:<pkg>[/<path>]
  http(s)://<host>/<path>

  <source>    The registry mirror (E.g. "npm", "bower", "env", "global", "dt", ...)
  <path>      Path to a `.d.ts` file or `typings.json`
  <host>      A domain name (with optional port)
  <version>   A semver range (E.g. ">=4.0")
  <tag>       The specific tag of a registry entry
  <commitish> A git commit, tag or branch

Options:
  [--save|-S]       Persist to "dependencies"
  [--save-dev|-D]   Persist to "devDependencies"
  [--save-peer|-P]  Persist to "peerDependencies"
  [--ambient|-A]    Install and persist as an ambient definition
    [-SA]           Persist to "ambientDependencies"
    [-DA]           Persist to "ambientDevDependencies"
  [--production]    Install only production dependencies (omits dev dependencies)

Aliases: i, in

例如,

>typings install dt!foundation-sites
typings INFO reference Stripped reference "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/7de6c3dd94feaeb21f20054b9f30d5dabc5efabd/jquery/jquery.d.ts" during installation from "foundation-sites"
foundation-sites
└── (No dependencies)

然后我在typings/browser/definitions/foudation-sites 中得到了dt 版本。

因此,您的问题的答案:

1)安装了哪一个,为什么?来自 global 的日期较早或 dt 日期较晚。

两者都不是,您必须指定来源

2) global 和 dt source 都需要 --ambient 标志吗?

不,--ambient 将“安装并保留为环境定义”

3) 只有在类型注册表的 npm 文件夹中时才会自动安装类型。

我假设只有在没有歧义的情况下安装是“自动的”。

于 2016-04-02T22:54:49.317 回答