纱线升级互动总是“异国情调”

Yarn upgrade-interactive always to `exotic`

我正在尝试托管在 github 上的集中式构建设置:https://github.com/skybrud/sky-build-setup/tree/master

在 npm 模块中使用了这个 repo,我有以下 package.json:

{
  "name": "sky-crop",
  "version": "1.0.5",
  "description": "Vue component for cropping images",
  "main": "dist/skycrop.js",
  "scripts": {
    "vanilla": "rimraf ./node_modules && yarn run dist",
    "build": "rimraf ./dist && webpack --config ./webpack.config.js",
    "dist": "yarn install && yarn run build"
  },
  "build": "module",
  "author": "Skybrud.dk",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://github.com/skybrud/sky-crop.git"
  },
  "dependencies": {
    "sky-window": "^1.0.4"
  },
  "devDependencies": {
    "sky-build-setup": "https://github.com/skybrud/sky-build-setup.git#semver:^1.0.0"
  }
}

这是我的问题。当 运行 yarn upgrade-interactive 我总是得到以下信息:

出于某种原因,to 部分总是引用 exotic 而不是最新的。

有人可以指出我正在发生的事情的正确方向吗? exotic 到底是什么意思?我无法在任何地方找到描述。

Yarn 无法管理不属于 npm 包存储库的依赖项版本。

在你的例子中,devDependency sky-build-setup 使用 github url 解析,其中 yarn 无法知道是否有新版本的依赖也不知道如何更新。不属于 npm 的依赖项(即通过 urls 或 file: 解析的依赖项)在 interactive-upgrade 进程中标记为 exotic

另一方面,依赖项 sky-window 来自 npm,yarn 可以评估您是否使用最新版本并最终为您更新。