javascript - tablas - utilizando myproject/.npmrc con registro
npmrc registry (3)
¿Cómo configuro un archivo .npmrc dentro de mi proyecto donde puedo definir mi propio registro privado? No quiero tener este tipo de configuración en mi configuración de usuario .npmrc. Todos los demás desarrolladores deberían poder git clone
el proyecto y ejecutar la npm install
.
Esto es lo que tengo hasta ahora:
// .npmrc
registry=https://npm.fury.io/AUTH_TOKEN/me/
// package.json:
{
"name": "webapp",
"description": "",
"version": "1.0.0",
"private": true,
"dependencies": {
"jquery": "1.2.3",
"myPrivateLibFromNpmFury": "0.0.4"
}
}
npm install myPrivateLibFromNpmFury
devoluciones
npm ERR! 404 Registry returned 404 for GET on https://registry.npmjs.org/myPrivateLibFromNpmFury
Como lo señalaron @Paulpro y @Alexey B. la mayoría de las partes ya funcionaban, pero no pude verlo de inmediato, tal vez porque no volví a cargar mi entorno bash correctamente. Pero después de eso me enfrenté a otro problema con npm outdated
que fue causado por la URL del registro. Resulta que npm solo puede tener una url de registro, (lo cual es una locura) y si quieres usar módulos privados y públicos de npm, tienes que utilizar el registro público de npm-module a través de tu registro privado. Afortunadamente, furia.io lo admite, así que en mi caso en lugar de usar esto:
//.npmrc
registry=https://npm.fury.io/AUTH_TOKEN/me/
tengo que usar esto:
//.npmrc
registry=https://npm-proxy.fury.io/AUTH_TOKEN/USER_NAME/
ACTUALIZACIÓN : Es posible evitar el problema (npm está vinculado a un solo registro). Primero, debe agregar un scope a todos sus paquetes privados. Ahora con .npmrc
puede vincular los registros para los ámbitos y ya no necesita ningún proxy.
//.npmrc
@project_a:registry=https://npm.fury.io/AUTH_TOKEN/USER_NAME/
@project_b:registry=https://npm.fury.io/AUTH_TOKEN/USER_NAME/
@company_a:registry=https://npm.fury.io/AUTH_TOKEN/USER_NAME/
Debe usar el proxy sin fisuras:
registry=https://npm-proxy.fury.io/AUTH_TOKEN/me/
Notado a los documentos
Archivo de configuración por proyecto
Cuando trabaje localmente en un proyecto, un archivo .npmrc en la raíz del proyecto (es decir, un hermano de node_modules y package.json) establecerá valores de configuración específicos para este proyecto.
Tenga en cuenta que esto solo se aplica a la raíz del proyecto en el que está ejecutando npm. No tiene ningún efecto cuando se publica su módulo. Por ejemplo, no puede publicar un módulo que se fuerce a instalar de forma global o en una ubicación diferente.
Intenté crear los archivos que especificó en la pregunta (package.json y .npmrc), todo funciona bien. ¿Quizás hiciste un error tipográfico en alguna parte?
frgt$ npm i myPrivateLibFromNpmFury --verbose
npm info using [email protected]
npm info using [email protected]
npm verb request uri https://npm.fury.io/AUTH_TOKEN/me/myPrivateLibFromNpmFury
npm verb request no auth needed
npm info attempt registry request try #1 at 14:36:10
npm verb request id 23f09acc4e7021c7
npm http request GET https://npm.fury.io/AUTH_TOKEN/me/myPrivateLibFromNpmFury
npm http 403 https://npm.fury.io/AUTH_TOKEN/me/myPrivateLibFromNpmFury