jspm 如何确定从 Github 下载什么

How jspm determines what to download from Github

我一直在努力尝试从 Twitter Bootstrap 下载 less 文件。根据 jspm 文档,他们将下载版本的 zip 文件而不是存储库中的源代码。在 Twitter Bootstrap 中,zip 文件没有 less 文件,所以我明白为什么我在执行类似操作时没有得到它们:

jspm install github:twbs/bootstrap@3.3.4

但是,为了避免该限制,我分叉了 Twitter Bootstrap 以避免那些自定义发布文件。当我转到我的 fork 中的发布部分并下载文件时,它看起来不错,但是当我尝试安装它时,我得到了与以前相同的文件。

我做了一个干净的缓存,创建了一个不同的分支,在一个基于 v3.3.4 的新分支上进行了更改,等等。我总是得到与 v3.3.4 相同的一组文件,但没有更少的文件。

有谁知道 jspm 如何确定要下载的内容以及为什么它可能会下载 twbs/bootstrap 中的发布文件而不是我的 fork 中的文件?

这有点晚了,但是在搜索另一个主题时偶然发现了这个。所以基本上这就是交易。

jspm 利用 package.json 文件。您会注意到一个名为 "files" 的条目。当 jspm 访问 github/npm 存储库时,它将查看此 JSON 键并确定要拉取的内容。

这很有用,因为通常您可能有一个模块需要其他文件来开发,但您在分发模块时不需要或不需要这些文件。

正如您在下面看到的,这是 bootstrap package.json 中的 "files" 配置。它确实有一个 less 文件的密钥。

"files": [
  "dist",
  "fonts",
  "grunt",
  "js/*.js",
  "less/**/*.less",
  "Gruntfile.js",
  "LICENSE"
],

这里的问题,如果你想称之为 jspm 如何处理这个流行的 repo。在内部,它映射到一些 repos,它映射到发行版,在这种情况下 bootstrap-less。您可以在下面看到所有 bootstrap jspm 注册表项:

"bootstrap": "github:twbs/bootstrap",
"bootstrap-less": "github:distros/bootstrap-less",
"bootstrap-material": "github:fezVrasta/bootstrap-material-design",
"bootstrap-sass": "github:twbs/bootstrap-sass",
"bootstrap-slider": "github:seiyria/bootstrap-slider",
"bootstrap-wizard": "github:gwrey/bootstrap-wizard"

所以如果你想要更少的文件,你只需要 运行:

$ jspm install bootstrap-less

任何人都可以创建拉取请求并添加到 jspm 注册表。您可以在 link:

找到注册表

https://github.com/jspm/registry/blob/master/registry.json

希望这能帮您解决问题。