#javascript #npm #yarnpkg
Вопрос:
Я обновил yarn
, чтобы указать на свой пользовательский реестр, и проверил, как показано ниже
$yarn config list -g
yarn config v1.22.10
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: 'https://npm.xxx.io/',
'strict-ssl': true,
'user-agent': 'yarn/1.22.10 npm/? node/v14.17.4 darwin x64',
lastUpdateCheck: 1628819793479,
'unsafe-disable-integrity-migration': true
}
info npm config
{
registry: 'https://npm.xxx.io/'
}
✨ Done in 0.05s.
Как вы можете видеть выше, registry
указывает на https://npm.xxx.io/
то , что я затем приступаю к установке пакета npm, выполнив команду yarn global add @my-comp/rn-cli
А ниже приведено сообщение об ошибке, которое я получил
yarn global v1.22.10
[1/4] 🔍 Resolving packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/@my-comp/rn-cli: Not found".
info If you think this is a bug, please open a bug report with the information provided in "/Users/xxxx/.config/yarn/global/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/global for documentation about this command.
Из приведенного выше сообщения об ошибке следует, что yarn
я все еще пытаюсь найти пакет, https://registry.yarnpkg.com
который меня смутил. Интересно, есть ли у кого-нибудь какие-нибудь идеи?
Обновления
Я понял две вещи, как показано ниже:
- если я запущу
yarn add @my-comp/rn-cli
, диспетчер пакетов сможет найти пакет, что означает, что я сузил проблему до «глобальных» настроек yarn config get registry -g
илиyarn config get registry -gxxwhatever
оба вернут один и тот же результат, который, как мне кажется, конфигурация yarn фактически проигнорировала глобальный флаг-g
Комментарии:
1. Было ли у вас имя файла
.npmrc
для блокировки источника npm в вашем проекте ?2. У меня есть
.npmrc
значениеregistry=https://npm.xxx.io
, аналогичное значению, когда я перечисляю, как указано выше, @cookie3. можете ли вы попробовать
yarn --registry=https://npm.xxx.io
4. @cookie: Я получил следующее сообщение
yarn install v1.22.10 [1/4] 🔍 Resolving packages... success Already up-to-date.
5. @cookie: просто для ясности, это сообщение показывает, что ничего не изменилось, и я все еще получаю 404 при установке пакета
Ответ №1:
Нашел обходной путь, настроив его вручную npm_config_registry
. Полная команда, как показано ниже
npm_config_registry=https://npm.xxx.io/ yarn global add @my-comp/rn-cli
Нашел этот обходной путь по адресу https://github.com/yarnpkg/yarn/issues/5056 для других, чтобы ссылаться
Также, как указано в https://github.com/yarnpkg/yarn/issues/4862 , команда yarn не будет поддерживать эту проблему, так как они решили проблему в yarn v2
Ответ №2:
Возможно, вы можете использовать yarn config set registry [npm.source] -g
для блокировки источника npm вашего глобального пакета.