Solución:
Primera solución posible:
Solución simple: rm -f ./.npmrc
(Eliminando un archivo .npmrc)
Segunda posible solución:
Sin embargo, si no desea eliminar el archivo, simplemente puede eliminar esta línea de código en el .npmrc
expediente.
Línea de código: //registry.npmjs.org/:_authToken=${NPM_TOKEN}
(Eliminar este código)
Tercera posible solución
Peor de los casos:
-
nano ~/.bash_aliases
onano ~/.bash_profile
- agregar
export NPM_TOKEN="XXXXX-XXXXX-XXXXX-XXXXX"
- CTRL + X para salir
- Y para ahorrar
Solución realmente adecuada
Actualice su configuración de implementación de CI:
npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}"
npm publish
Quite esta línea del .npmrc
expediente:
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
Ejemplo de configuración de compilación
Puede ver esta solución utilizada en la práctica en uno de mis repositorios de GitHub: https://github.com/Jezorko/lambda-simulator/blob/master/.travis.yml
La variable de entorno cifrada es un token de NPM.
Por qué las otras “soluciones” son meras soluciones
He visto respuestas aquí y en esta pregunta que recomiendan simplemente eliminar la línea de configuración de la variable o .npmrc
archivo completo.
La cosa es que .npmrc
Es posible que su sistema VCS no ignore el archivo, y modificarlo podría dar lugar a envíos accidentales al repositorio de su proyecto. Además, el archivo puede contener otras configuraciones importantes.
El problema aquí es que .npmrc
no permite valores predeterminados al configurar variables de entorno. Por ejemplo, si se permitiera la siguiente sintaxis, el problema no existiría:
//registry.npmjs.org/:_authToken=${NPM_TOKEN:-undefined}
Tengo una solución fácil para este problema. Después de configurar su NPM_TOKEN globalmente en su entorno, reemplace
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
con
//registry.npmjs.org/:_authToken=$NPM_TOKEN
Me ha funcionado bien en macOS Catalina.