que instalar example descargar como nexus

nexus - instalar - package.json example



No se puede publicar en un registro NPM(local) (3)

Estoy ejecutando Nexus 3.0.1-01, y lo estoy usando para alojar tanto los repositorios de Maven como los registros de NPM. Para NPM, tengo un espejo local de npmjs.org, un registro local de NPM y un grupo que combina los dos ...

He estado usando esto con npm internamente, donde puedo usar el grupo npm-public como mi registro y esto ha funcionado bien. Entonces, puedo usar Nexus para reflejar npmjs.

El siguiente paso es tomar módulos npm escritos localmente y publicarlos en npm-releases (en mi instancia de Nexus) para que estos módulos puedan ser compartidos entre los equipos de entrega aquí. He podido construir un paquete, y el paquete npm parece comportarse.

He ejecutado npm adduser para proporcionar mis credenciales de Nexus a mi entorno npm. Estoy usando el mismo nombre de usuario / contraseña que uso cuando inicio sesión en la aplicación web Nexus, y a mi usuario se le asigna la función de administrador (por lo que debería tener todos los permisos) Puedo ver las credenciales en mi archivo .npmrc

Mi valor de registro sigue siendo el grupo npm-public que combinó el espejo y mi registro local. Me he asegurado de que el package.json del módulo que estoy intentando implementar tenga una sección "publishConfig" que apunta a la url del registro local (no del grupo público)

Sin embargo, a pesar de todo eso, llamar "npm publish" genera un error 401 ...

Mirando el npm-debug.log, puedo ver que está intentando llamar a la llamada HTTP PUT para enviar el archivo tgz ensamblado al registro, y esto está devolviendo un error 401

He habilitado el registro de depuración en el paquete shiro en el servidor, pero solo veo un solo mensaje pensando que necesita autenticación

2016-09-13 08:56:28,590+1000 DEBUG [qtp1257823896-4030] *UNKNOWN org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter - Authentication required: sending 401 Authentication challenge response.

De acuerdo con la documentación, he hecho todo lo que debo hacer (npm agregar usuario) pero no puedo implementar con éxito un módulo npm en mi repositorio local.

¿Hay opciones adicionales que necesito usar cuando llamo a publicar npm? ¿Hay alguna configuración adicional que deba realizar en el repositorio de npm alojado en mi servidor que me permita publicarlo? Lo creé usando los valores por defecto. ¿He omitido un paso que me impide implementarlo en mi registro npm alojado?

Cualquier ayuda sería muy apreciada, ya que estoy atrapado en este momento.


Además de la respuesta de @Daniel , descubrí que al agregar credenciales de usuario / inicio de sesión en npm , no puede haber una barra inclinada en la URL del registro.

Malo:

npm adduser --registry=https://repo.localhost/repository/npm-internal/

Bueno:

npm adduser --registry=https://repo/repository/npm-internal

Además, si está buscando automatizar el inicio de sesión (es decir, de forma no interactiva), usé una buena herramienta llamada npm-cli-login .

npm-cli-login -u admin -p admin123 -e [email protected] -r https://repo/repository/npm-internal


Además de la respuesta de @EdH, descubrimos que el formato de .npmrc ha cambiado, por lo que la base64 codificada _auth ya no funcionará ... y el token se debe crear al iniciar sesión en el repositorio.

viejo .npmrc

registry=https://host/repo _auth=12afdjsljl123213

nuevo .npmrc

//host/repo/:_authtoken=uuidOfToken


Resulta que no tenía el Reino de token de portador de Npm en mi lista de reinos activos. Una vez que lo moví a Activo, ¡la publicación se completó exitosamente!