【问题标题】:NPM - Failed to replace env in config: ${NPM_BASE64_USERNAME_PASSWORD}NPM - 无法替换配置中的 env:${NPM_BASE64_USERNAME_PASSWORD}
【发布时间】:2021-06-18 20:45:17
【问题描述】:

每当我尝试在终端中执行任何操作时都会出现以下错误(例如npm testnpm install

我已尝试按照此处列出的类似步骤 - NPM - Failed to replace env in config: ${NPM_TOKEN}。我还尝试在我的 .npmrc 文件中设置我的用户名和(编码)密码,但似乎都不适合我。

不太确定我还应该在这里尝试什么......

Error: Failed to replace env in config: ${NPM_BASE64_USERNAME_PASSWORD}
    at /Users/andrew.lee/.nvm/versions/node/v14.17.1/lib/node_modules/npm/lib/config/core.js:415:13
    at String.replace (<anonymous>)
    at envReplace (/Users/andrew.lee/.nvm/versions/node/v14.17.1/lib/node_modules/npm/lib/config/core.js:411:12)
    at parseField (/Users/andrew.lee/.nvm/versions/node/v14.17.1/lib/node_modules/npm/lib/config/core.js:389:7)
    at /Users/andrew.lee/.nvm/versions/node/v14.17.1/lib/node_modules/npm/lib/config/core.js:330:24
    at Array.forEach (<anonymous>)
    at Conf.add (/Users/andrew.lee/.nvm/versions/node/v14.17.1/lib/node_modules/npm/lib/config/core.js:328:23)
    at ConfigChain.addString (/Users/andrew.lee/.nvm/versions/node/v14.17.1/lib/node_modules/npm/node_modules/config-chain/index.js:244:8)
    at Conf.<anonymous> (/Users/andrew.lee/.nvm/versions/node/v14.17.1/lib/node_modules/npm/lib/config/core.js:316:10)
    at /Users/andrew.lee/.nvm/versions/node/v14.17.1/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:123:16
/Users/andrew.lee/.nvm/versions/node/v14.17.1/lib/node_modules/npm/lib/npm.js:59
      throw new Error('npm.load() required')
      ^

Error: npm.load() required
    at Object.get (/Users/andrew.lee/.nvm/versions/node/v14.17.1/lib/node_modules/npm/lib/npm.js:59:13)
    at process.errorHandler (/Users/andrew.lee/.nvm/versions/node/v14.17.1/lib/node_modules/npm/lib/utils/error-handler.js:208:32)
    at process.emit (events.js:375:28)
    at process._fatalException (internal/process/execution.js:163:25)

【问题讨论】:

    标签: node.js npm


    【解决方案1】:

    甚至,我在通过 docker 文件从 aws codeartifact 中提取节点组件时遇到了类似于 thiis 的问题。您需要做的是创建一个 .nmprc 文件并将其放到 npm installaiton 的根位置,这样做您的问题将得到解决。我在docker文件中破坏npm安装时遇到异常,例如 通过 npm 运行 powershell -command npm install 或任何 angular cli install

    "8 : RUN powershell -命令 npm install 2022-03-03T19:16:34.2653417Z ---> 运行在 97791ba93799 2022-03-03T19:16:44.2652033Z [91mError: 无法在配置中替换 env: ${env:CODEARTIFACT_AUTH_TOKEN} 2022-03-03T19:16:44.2652033Z 在 C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:415:13 2022-03-03T19:16:44.2661894Z 在 String.replace () 2022-03-03T19:16:44.2661894Z 在 envReplace (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:411:12) 2022-03-03T19:16:44.2661894Z 在 parseField (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:389:7) 2022-03-03T19:16:44.2661894Z 在 C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:330:24 2022-03-03T19:16:44.2661894Z 在 Array.forEach () 2022-03-03T19:16:44.2661894Z 在 Conf.add (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:328:23)"

    解决方案 请使用这个 docker 文件,我正在从构建文件传递令牌,例如

    构建.ps1 $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain se2codepkg --domain-owner 590427636078 --query authorizationToken --output text

    docker.ps1

    运行 powershell echo "registry=https://se2codepkg-590427636078.d.codeartifact.us-east-1.amazonaws.com/npm/npm-store/
    //se2codepkg-590427636078.d.codeartifact.us-east-1.amazonaws.com/npm/npm-store/:always-auth=true
    //se2codepkg-590427636078.d.codeartifact.us-east-1.amazonaws.com/npm/npm-store/:_authToken=${env:CODEARTIFACT_AUTH_TOKEN}">.npmrc

    我通过下面的链接得到了这个想法 https://developpaper.com/question/after-nodejs-is-installed-successfully-npm-cannot-run-and-prompt-failed-to-replace-env-in-config/

    【讨论】:

      猜你喜欢
      • 2019-01-31
      • 2022-11-03
      • 2014-08-02
      • 2019-05-18
      • 2021-03-21
      • 2014-03-23
      • 2019-09-12
      • 2014-04-04
      • 2020-10-19
      相关资源
      最近更新 更多