Estoy tratando de crear una aplicación de reacción, pero cuando ejecuto el comando npm -i me da el siguiente error:
Error: Failed to replace env in config: ${NPM_TOKEN} at /usr/local/lib/node_modules/npm/lib/config/core.js:415:13 at String.replace (<anonymous>) at envReplace (/usr/local/lib/node_modules/npm/lib/config/core.js:411:12) at parseField (/usr/local/lib/node_modules/npm/lib/config/core.js:389:7) at /usr/local/lib/node_modules/npm/lib/config/core.js:330:24 at Array.forEach (<anonymous>) at Conf.add (/usr/local/lib/node_modules/npm/lib/config/core.js:328:23) at ConfigChain.addString (/usr/local/lib/node_modules/npm/node_modules/config-chain/index.js:244:8) at Conf.<anonymous> (/usr/local/lib/node_modules/npm/lib/config/core.js:316:10) at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:78:16 /usr/local/lib/node_modules/npm/lib/npm.js:61 throw new Error('npm.load() required') ^ Error: npm.load() required at Object.get (/usr/local/lib/node_modules/npm/lib/npm.js:61:13) at process.errorHandler (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:205:18) at process.emit (events.js:182:13) at process._fatalException (internal/bootstrap/node.js:448:27)Estoy usando MacOS High Sierra. Traté de configurar NPM_TOKEN como una variable de entorno con el siguiente comando:
set -x NPM_TOKEN = xyzpero no funciona ¿Cuál es el problema?
Solución simple: rm -f ./.npmrc (Eliminar un archivo .npmrc)
Sin embargo, si no desea eliminar el archivo, simplemente puede eliminar esta línea de código en el archivo .npmrc .
Línea de código: //registry.npmjs.org/:_authToken=${NPM_TOKEN} (Quitar este código)
Peor de los casos:
nano ~/.bash_aliases o nano ~/.bash_profileexport NPM_TOKEN="XXXXX-XXXXX-XXXXX-XXXXX"Actualice su configuración de implementación de CI:
npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}" npm publish Elimine esta línea del archivo .npmrc :
//registry.npmjs.org/:_authToken=${NPM_TOKEN}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 NPM.
He visto respuestas aquí y debajo de esta pregunta que recomiendan simplemente eliminar la línea de configuración variable o el archivo .npmrc por completo.
La cuestión es que es posible que su sistema VCS no ignore el archivo .npmrc y que modificarlo podría generar inserciones accidentales en el 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_TOKENMe ha funcionado bien en macOS Catalina.