Итак, мне наконец удалось получить частный реестр npm с помощью Sinopia. Но я не могу ничего публиковать по этому поводу.
TL; DR: Sinopia не поддерживает npm adduser, но имеет собственное управление пользователями. Также npm требуется действующий пользователь, созданный до npm publish с помощью npm adduser, который не работает, потому что внутренний сервер Sinopia выдает ошибку при неподдерживаемой команде ....
Как использовать Sinopia в качестве частного реестра с правильными пользователями и паролями
- создать глобального пользователя в npmjs.org, а затем еще одного с таким же паролем в Sinopia?
- Или есть более простой способ указать npm просто использовать фиксированный пользователь / пароль.
- Или еще лучше подскажите мне как-нибудь логин и пароль?
- что-то другое?
Сводка:
Sinopia не зависит от Couch.DB и может извлекать пакеты, которых у него еще нет, от мастера (по умолчанию - глобальный npmjs.org).
Sinopia запускается отлично и настроена на прослушивание на всех интерфейсах. Он творит чудеса, обслуживая посылки
npm install
Я даже настроил ~ / .npmrc, чтобы он всегда указывал на внутренний реестр.
Для файла package.json всех проектов установлено значение
....
"publishConfig" : {
"registry" : "http://internal-npm:4873"
},
....
Также мне удалось добавить пользовательских пользователей в sinopia, манипулируя config.yaml с помощью js-yaml.
crypto.createHash('sha1').update('theBigPassword').digest('hex')
Теперь я застрял в
npm --registry=http://internal-npm:4873 --ca=null publish
После долгого ожидания я получаю:
npm ERR! need auth auth and email required for publishing
npm ERR! need auth You need to authorize this machine using `npm adduser`
npm ERR! System Linux 3.11.0-18-generic
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "--registry=http://internal-npm:4873" "--ca=null" "publish"
npm ERR! cwd /home/ciprian/workspace/netop-npm
npm ERR! node -v v0.10.15
npm ERR! npm -v 1.2.18
npm ERR! code ENEEDAUTH
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/ciprian/workspace/netop-npm/npm-debug.log
npm ERR! not ok code 0
Деловой конец файла журнала говорит мне, что пользователь не является необязательным
86 error need auth auth and email required for publishing
86 error need auth You need to authorize this machine using `npm adduser`
87 error System Linux 3.11.0-18-generic
88 error command "/usr/bin/nodejs" "/usr/bin/npm" "--registry=http://internal-npm:4873" "--ca=null" "publish"
89 error cwd /home/ciprian/workspace/netop-npm
90 error node -v v0.10.15
91 error npm -v 1.2.18
92 error code ENEEDAUTH
93 verbose exit [ 1, true ]
Проблема с курицей и яйцом заключается в том, что Sinopia не поддерживает npm adduser
, но имеет собственное управление пользователями, как я упоминал выше. Также npm нужен действительный пользователь, созданный с помощью npm adduser
, что не удается, потому что внутренний сервер Sinopia выдает ошибку при неподдерживаемой команде.