NPM - Failed to replace env in config: ${NPM_TOKEN}

前端 未结 6 2018
清酒与你
清酒与你 2020-12-15 02:43

I am trying to build a react app, but when I execute the command npm -i it gives me the following error:

Error: Failed to replace env in config:         


        
6条回答
  •  無奈伤痛
    2020-12-15 03:18

    Actually proper solution

    Update your CI deployment configuration:

    npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}"
    npm publish
    

    Remove this line from the .npmrc file:

    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    

    Example build config

    You can see this solution used in practice in one of my GitHub repositories: https://github.com/Jezorko/lambda-simulator/blob/master/.travis.yml

    The encrypted environment variable is an NPM token.

    Why the other "solutions" are mere workarounds

    I've seen answers here and under this question that recommend simply removing the variable setting line or .npmrc file entirely.

    Thing is, the .npmrc file might not be ignored by your VCS system and modifying it might lead to accidental pushes to your project's repository. Additionally, the file may contain other important settings.

    The problem here is that .npmrc does not allow defaults when setting up environment variables. For example, if the following syntax was allowed, the issue would be non-existent:

    //registry.npmjs.org/:_authToken=${NPM_TOKEN:-undefined}

提交回复
热议问题