为什么 yarn 在安装特定包时会发出以下请求?

Why yarn make following requests when installing a specific package?

我已经安装了 verdaccio 并向其发布了一个私有包,并设置了 yarn 注册表以向 verdaccio 代理服务器发出请求。 yarn 向代理服务器发出请求,并向 yarnpkg 服务器发出一些以下请求。这里有两个问题。

  1. 当其他包不是所需包的依赖项的一部分时,yarn 不应该对它们发出以下请求。
  2. 当用户明确设置注册表时,yarn 不应向 yarnpkg 服务器发出请求。
$ yarn config get registry
http://localhost:4873/
$ yarn config list
yarn config v1.15.2
info yarn config
{ 'version-tag-prefix':
   'v',
  'version-git-tag':
   true,
  'version-commit-hooks':
   true,
  'version-git-sign':
   false,
  'version-git-message':
   'v%s',
  'init-version':
   '1.0.0',
  'init-license':
   'MIT',
  'save-prefix':
   '^',
  'bin-links':
   true,
  'ignore-scripts':
   false,
  'ignore-optional':
   false,
  registry:
   'http://localhost:4873/',
  'strict-ssl':
   true,
  'user-agent':
   'yarn/1.15.2 npm/? node/v10.15.2 linux x64',
  'cache-folder':
   '/tmp',
  lastUpdateCheck:
   1556742143802 }
info npm config
{}
Done in 0.03s.
$ yarn add @electron-e/store --verbose
yarn add v1.15.2
warning You don't appear to have an internet connection. Try the --offline flag to use the cache for registry queries.
verbose 0.66 Checking for configuration file "/home/devilfromir/Code/projects/desktop/NRobo/.npmrc".
verbose 0.661 Checking for configuration file "/home/devilfromir/.npmrc".
verbose 0.661 Checking for configuration file "/usr/etc/npmrc".
verbose 0.662 Checking for configuration file "/home/devilfromir/Code/projects/desktop/NRobo/.npmrc".
verbose 0.662 Checking for configuration file "/home/devilfromir/Code/projects/desktop/.npmrc".
verbose 0.662 Checking for configuration file "/home/devilfromir/Code/projects/.npmrc".
verbose 0.662 Checking for configuration file "/home/devilfromir/Code/.npmrc".
verbose 0.663 Checking for configuration file "/home/devilfromir/.npmrc".
verbose 0.663 Checking for configuration file "/home/.npmrc".
verbose 0.665 Checking for configuration file "/home/devilfromir/Code/projects/desktop/NRobo/.yarnrc".
verbose 0.665 Checking for configuration file "/home/devilfromir/.yarnrc".
verbose 0.665 Found configuration file "/home/devilfromir/.yarnrc".
verbose 0.666 Checking for configuration file "/usr/etc/yarnrc".
verbose 0.666 Checking for configuration file "/home/devilfromir/Code/projects/desktop/NRobo/.yarnrc".
verbose 0.666 Checking for configuration file "/home/devilfromir/Code/projects/desktop/.yarnrc".
verbose 0.666 Checking for configuration file "/home/devilfromir/Code/projects/.yarnrc".
verbose 0.666 Checking for configuration file "/home/devilfromir/Code/.yarnrc".
verbose 0.666 Checking for configuration file "/home/devilfromir/.yarnrc".
verbose 0.667 Found configuration file "/home/devilfromir/.yarnrc".
verbose 0.667 Checking for configuration file "/home/.yarnrc".
verbose 0.671 current time: 2019-05-02T04:07:57.340Z
[1/4] Resolving packages...
verbose 1.101 Performing "GET" request to "http://localhost:4873/@electron-e%2fstore".
verbose 1.168 Request "http://localhost:4873/@electron-e%2fstore" finished with status code 200.
[2/4] Fetching packages...
verbose 1.259 Performing "GET" request to "https://registry.yarnpkg.com/antd/-/antd-3.16.6.tgz".
verbose 1.279 Performing "GET" request to "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz".
verbose 1.281 Performing "GET" request to "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz".
info There appears to be trouble with your network connection. Retrying...
verbose 1.292 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/create-react-context/-/create-react-context-0.2.4.tgz".
verbose 1.295 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/icons/-/icons-1.2.1.tgz".
verbose 1.297 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/icons-react/-/icons-react-1.1.5.tgz".
verbose 1.299 Performing "GET" request to "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz".
verbose 1.303 Performing "GET" request to "https://registry.yarnpkg.com/@types/react-slick/-/react-slick-0.23.3.tgz".
verbose 4.293 Performing "GET" request to "https://registry.yarnpkg.com/antd/-/antd-3.16.6.tgz".
verbose 4.296 Performing "GET" request to "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz".
verbose 4.299 Performing "GET" request to "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz".
verbose 4.301 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/create-react-context/-/create-react-context-0.2.4.tgz".
verbose 4.304 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/icons/-/icons-1.2.1.tgz".
verbose 4.307 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/icons-react/-/icons-react-1.1.5.tgz".
verbose 4.31 Performing "GET" request to "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz".
verbose 4.312 Performing "GET" request to "https://registry.yarnpkg.com/@types/react-slick/-/react-slick-0.23.3.tgz".
info There appears to be trouble with your network connection. Retrying...
verbose 7.334 Performing "GET" request to "https://registry.yarnpkg.com/antd/-/antd-3.16.6.tgz".
verbose 7.337 Performing "GET" request to "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz".
verbose 7.34 Performing "GET" request to "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz".
verbose 7.343 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/create-react-context/-/create-react-context-0.2.4.tgz".
verbose 7.345 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/icons/-/icons-1.2.1.tgz".
verbose 7.348 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/icons-react/-/icons-react-1.1.5.tgz".
verbose 7.35 Performing "GET" request to "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz".
verbose 7.353 Performing "GET" request to "https://registry.yarnpkg.com/@types/react-slick/-/react-slick-0.23.3.tgz".
info There appears to be trouble with your network connection. Retrying...
verbose 10.382 Performing "GET" request to "https://registry.yarnpkg.com/antd/-/antd-3.16.6.tgz".
verbose 10.386 Performing "GET" request to "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz".
verbose 10.387 Performing "GET" request to "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz".
verbose 10.388 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/create-react-context/-/create-react-context-0.2.4.tgz".
verbose 10.389 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/icons/-/icons-1.2.1.tgz".
verbose 10.39 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/icons-react/-/icons-react-1.1.5.tgz".
verbose 10.39 Performing "GET" request to "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz".
verbose 10.391 Performing "GET" request to "https://registry.yarnpkg.com/@types/react-slick/-/react-slick-0.23.3.tgz".
info There appears to be trouble with your network connection. Retrying...
verbose 13.4 Performing "GET" request to "https://registry.yarnpkg.com/antd/-/antd-3.16.6.tgz".
verbose 13.404 Performing "GET" request to "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz".
verbose 13.405 Performing "GET" request to "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz".
verbose 13.406 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/create-react-context/-/create-react-context-0.2.4.tgz".
verbose 13.407 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/icons/-/icons-1.2.1.tgz".
verbose 13.408 Performing "GET" request to "https://registry.yarnpkg.com/@ant-design/icons-react/-/icons-react-1.1.5.tgz".
verbose 13.408 Performing "GET" request to "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz".
verbose 13.409 Performing "GET" request to "https://registry.yarnpkg.com/@types/react-slick/-/react-slick-0.23.3.tgz".
verbose 13.423 Error: getaddrinfo ENOTFOUND registry.yarnpkg.com registry.yarnpkg.com:443
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:57:26)
error An unexpected error occurred: "https://registry.yarnpkg.com/antd/-/antd-3.16.6.tgz: getaddrinfo ENOTFOUND registry.yarnpkg.com registry.yarnpkg.com:443".
info If you think this is a bug, please open a bug report with the information provided in "/home/devilfromir/Code/projects/desktop/NRobo/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

yarn is not supposed to make request to yarnpkg server when user explicitly sets the registry.

我可以通过将自定义注册表放入 .npmrc 来解决我的问题。这很奇怪,但似乎 yarn 更喜欢 .npmrc 而不是 .yarnrc.

echo registry={CUSTOM_REGISTRY} > ~/.npmrc

yarn is not supposed to make following requests for other packages when they are not a part of dependencies of desired package.

不知道为什么,但使用 npm 进行测试表明它也会发出额外的请求。也许是一种内部机制,可确保 node_modules 内的所有内容都整洁干净。