包 json 依赖项不匹配

Package json dependencies don't match

我对 NPM / package.json 文件和包依赖项中的行为感到困惑。包 gulp-watch 上有一个示例。当我们查看其 package.json 文件 on github 时,我们发现它依赖于 "anymatch": "^3.1.1"。但是当我拉入 "gulp-watch": "^5.0.1" 包并查看 yarn.lock 文件时,我看到了这个:

gulp-watch@^5.0.1:
  version "5.0.1"
  resolved "https://registry.yarnpkg.com/gulp-watch/-/gulp-watch-5.0.1.tgz#83d378752f5bfb46da023e73c17ed1da7066215d"
  integrity sha512-HnTSBdzAOFIT4wmXYPDUn783TaYAq9bpaN05vuZNP5eni3z3aRx0NAKbjhhMYtcq76x4R1wf4oORDGdlrEjuog==
  dependencies:
    ansi-colors "1.1.0"
    anymatch "^1.3.0"
    chokidar "^2.0.0"
    fancy-log "1.3.2"
    glob-parent "^3.0.1"
    object-assign "^4.1.0"
    path-is-absolute "^1.0.1"
    plugin-error "1.0.1"
    readable-stream "^2.2.2"
    slash "^1.0.0"
    vinyl "^2.1.0"
    vinyl-file "^2.0.0"

它在哪里拉动anymatch "^1.3.0"

我已经删除了节点模块和 yarn.lock 文件,它似乎没有改变任何东西。

我很好奇为什么会有不同。

那是因为您查看的是 package.json 的最新版本,其中 updated dependencies since the release of 5.1.0. The package.json during the release of 5.1.0 指定 "anymatch": "^1.3.0",这就是您看到结果的原因。