1

我已经分叉了官方的 Bootstrap 存储库(4.0.0-alpha.6)来实现 Gulp 而不是 Grunt,并根据我们自己的需要开始主题化 Bootstrap。

我们正在开发的项目使用 JSPM 进行包管理。当我们尝试安装我们的自定义 Bootstrap 项目时,依赖项没有正确加载。

跑步;

jspm install bootstrap=github:TomFoyster/bootstrap@4.0.0-alpha6-ntt-0.0.3

给;

Looking up github:TomFoyster/bootstrap
Updating registry cache...
Looking up npm:jquery
ok   Installed npm:jquery@3 (3.1.1)
ok   Installed bootstrap as github:TomFoyster/bootstrap@4.0.0-alpha6-ntt-0.0.3 (4.0.0-alpha6-ntt-0.0.3)
Installed Forks

                           npm:jquery 2.2.4 3.1.1

To inspect individual package constraints, use jspm inspect registry:name.

ok   Install complete.

但是,安装官方的 Bootstrap 包;

jspm install bootstrap@4.0.0-alpha.6

给;

Updating registry cache...
Looking up github:twbs/bootstrap
Looking up npm:jquery
Looking up github:HubSpot/tether
ok   Installed github:HubSpot/tether@^1.1.1 (1.4.0)
ok   Installed bootstrap as github:twbs/bootstrap@4.0.0-alpha.6 (4.0.0-alpha.6)
ok   Install tree has no forks.

ok   Install complete.

您可以看到自定义 repo 没有将 Tether 作为依赖项安装,并且还安装了 jQuery 叉子——而官方包没有叉子?

package.json每个存储库中的两个文件都包含以下内容;

"dependencies": {
    "jquery": ">=1.9.1",
    "tether": "^1.4.0"
},

我错过了什么?

4

1 回答 1

1

当您通过 jspm 安装包时,它会查询jspm-registry以检查该包是否已定义别名或覆盖。这样做

jspm install bootstrap@4.0.0-alpha.6

将检查注册表并发现为 bootstrap@4 定义了一个自定义覆盖,内容如下:

{
  "main": "dist/js/bootstrap",
  "files": null,
  "ignore": [
    "dist/js/npm"
  ],
  "shim": {
    "dist/js/bootstrap": {
      "deps": [
        "jquery",
        "tether"
      ],
      "exports": "$"
    }
  },
  "dependencies": {
    "jquery": "*",
    "tether": "github:HubSpot/tether@^1.1.1"
  }
}

这个配置会覆盖github:twbs/bootstrap.

您的 fork 不存在于注册表中,因此它只安装了中定义的内容package.json

于 2017-03-29T22:37:10.880 回答