Определить личный реестр в package.json

У нас есть частный репозиторий npm, основанный на Синопии

Что я должен определить в package.json что некоторые пакеты будут установлены из Synopia, а не из глобального хранилища npm?

Если я установлю его из командной строки, я могу запустить: npm install <package_name> --registry <http://<server:port>

PS попробовал гуглить и заглянул в официальную документацию NPM но ничего не нашел.

2 ответа

Решение

Один из известных мне методов -.npmrc. Вы также можете использовать.npmrc также внутри проекта.

установить конфигурацию как это

registry = http://10.197.142.28:8081/repository/npm-internal/
init.author.name = Himanshu sharma
init.author.email = rmail@email.com
init.author.url = http://blog.example.com
# an email is required to publish npm packages
email=youremail@email.com
always-auth=true
_auth=YWRtaW46YWRtaW4xMjM=

auth может быть сгенерирован по имени пользователя: пароль echo -n 'admin:admin123' | Вывод openssl base64 YWRtaW46YWRtaW4xMjM=

Весь смысл Синопии является частным registry и proxy в то же время. Вы можете использовать uplink установить все ваши пакеты из одной точки входа в реестр. Sinopia может маршрутизировать в любой реестр, если локальное хранилище не может разрешить зависимость. По умолчанию он указывает на npmjs,

Итак, если вы установите свою конфигурацию как

   # a list of other known repositories we can talk to
uplinks:
  npmjs:
    url: https://registry.npmjs.org/

packages:
  '@*/*':
    # scoped packages
    access: $all
    publish: $authenticated
    proxy: npmjs

  '**':
    # allow all users (including non-authenticated users) to read and
    # publish all packages
    #
    # you can specify usernames/groupnames (depending on your auth plugin)
    # and three keywords: "$all", "$anonymous", "$authenticated"
    access: $all

    # allow all known users to publish packages
    # (anyone can register by default, remember?)
    publish: $authenticated

    # if package is not available locally, proxy requests to 'npmjs' registry
    proxy: npmjs

Вы должны быть в состоянии разрешить все ваши зависимости независимо от источника каждой из них

кстати: sinopia больше не поддерживается.

Другие вопросы по тегам