«Настройка реестра npm https://registry.npmjs.org/» не работает в файле Windows Bat


193

Я создаю a.bat на Windows 7, содержимое a.bat:

@echo off
npm config set registry https://registry.npmjs.org/

а затем запустить a.bat, но не работает, я нахожу слово "set" специальное ключевое слово для npm и bat, есть ли способы решить этот вопрос?


296
Кто-нибудь еще приходит на этот пост каждый раз, когда хочет узнать, что такое URL реестра npm? ха-ха
kevingilbert100

9
К вашему сведению: мне нужна была версия .com реестра: то есть, https://registry.npmjs.com/а неhttps://registry.npmjs.org/
infl3x

@ infl3x почему? какие различия?
18:33

7
@ kevingilbert100, npm config get registryчтобы узнать URL реестра
Шридхар

2
@ Сридхар Нет. Это обеспечивает только текущий набор реестра, а не «официальный» реестр npm.
Эмоб

Ответы:


224

Вы не должны изменять реестр npm, используя .batфайлы. Вместо этого попробуйте изменить .npmrcфайл, для которого настроена конфигурация npm. Правильная команда для изменения реестра

npm config set registry <registry url>

Вы можете найти больше информации с помощью npm help configкоманды, а также проверить наличие привилегий, когда и если вы запускаете .batфайлы таким образом.


может быть, метод, который я использовал, не подходит для моего вопроса, но все же спасибо за ваш ответ :)
mopduan

2
@MarcellodeSales trynpm config set registry=<registry url>
L1fescape

7
Эта configчасть не является обязательной, может запускаться только npm get registryдля того, чтобы увидеть текущее состояние и npm set registry https://registry.npmjs.org/установить его по умолчанию.
AlecRust

Возможно ли установить реестр npm <локальная папка node_modules>. Если я не хочу ничего скачивать из интернета и все артефакты находятся внутри приложения.
Саммит Сахдева,

86

Мы также можем запустить npm install с registryопциями для нескольких пользовательских URL-адресов реестра.

npm install --registry=https://registry.npmjs.org/ 
npm install --registry=https://custom.npm.registry.com/ 

1
Я искал это в течение долгого времени. Спасибо, что поделились!
falsarella

1
Вы, сэр, спаситель.
Радж Гупта

56

Вы можете изменить с помощью .bat, прежде чем запускать команду call, надеюсь, это поможет любому в будущем делать аналогичные команды .bat

call npm config set registry https://registry.npmjs.org/

7
@ Милад, я не знаю. Возможно, вы захотите создать атомарный счетчик и использовать систему, управляемую событиями, для обновления счетчика. Вы можете использовать распределенную базу данных для хранения счетчика, чтобы ваш счетчик был высокодоступным.
prayagupd


15

Наверное, я слишком поздно, чтобы ответить. Но если кому-то это нужно, то все работает хорошо, так как я использовал его много раз.

npm config set registry=https://registry.npmjs.com/


2

Выполняя свой .bat, вы устанавливаете конфигурацию только для этого сеанса, а не глобально. Когда вы откроете и другое приглашение cmd и запустите npm installэту конфигурацию, она не будет установлена ​​для этого сеанса, поэтому измените ваш .bat файл как

@echo off
npm config set registry https://registry.npmjs.org/
@cmd.exe /K

1
  1. Установить реестр npm глобально

    используйте команду ниже, чтобы изменить файл конфигурации .npmrc для вошедшего в систему пользователя

    npm config set registry <registry url>

    Пример: npm config set registry https://registry.npmjs.org/


  1. Задать область реестра npm

    Области позволяют группировать связанные пакеты вместе. Пакеты с областью действия будут установлены в подпапку в папке node_modules .

    Пример : node_modules / @ my-org / packagaename

    Чтобы установить реестр области, используйте: npm config set @my-org:registry http://example.reg-org.com

    Для установки пакетов с использованием области используйте: npm install @my-org/mypackage

    всякий раз, когда вы устанавливаете какие-либо пакеты из scope @ my-org, npm будет искать в параметре реестра, связанном с scope @ my-org, URL-адрес реестра.


  1. Установить реестр npm локально для проекта

    Изменить реестр npm только для текущего проекта. создать файл в корневой папке проекта как.npmrc

    Добавьте ниже содержание в файл

   registry = 'https://registry.npmjs.org/'

0
2.name can no longer contain capital letters

не используйте заглавные буквы для вашего пакета:

npm install --save uex

использовать это:

npm install --save vuex

0

Возможно, вы не сможете изменить реестр npm, используя .batфайл, как указал Gntem . Но я понимаю, что вам нужна возможность автоматизировать изменение реестров. Вы можете сделать это .npmrc, разместив свои конфиги в отдельных файлах (например, npmrc_jfrog & npmrc_default ) и попросив.bat файлы выполнить задачу копирования.

Например (в Windows): у вас default_registry.batбудет

xcopy /y npmrc_default .npmrc

и ваша jfrog_registry.batволя

xcopy /y npmrc_jfrog .npmrc

Примечание: /y подавляет запрос подтверждения того, что вы хотите перезаписать существующий файл назначения.

Это обеспечит копирование всех свойств конфигурации ( реестра, прокси, apiKeys и т. Д. ) В.npmrc .

Вы можете прочитать больше о xcopy здесь .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.