gpt4 book ai didi

node.js - Heroku 和 Node 0.10.29 : Failed to replace env in config

转载 作者:搜寻专家 更新时间:2023-10-31 23:54:49 24 4
gpt4 key购买 nike

为了在我的 Heroku 部署的 Node 应用程序中使用私有(private)包注册表,我在我的项目中包含了以下 .npmrc 文件:

_auth = ${NPM_AUTH}
always-auth = true
registry = https://myprivateregistry.com/

NPM_AUTH 是 npm 期望的形式的名称/密码哈希。

这允许我将凭据保留在版本控制之外。一切正常,直到 Node 0.10.29,当我在推送到 Heroku 时开始收到以下错误:

♥ → git push heroku HEAD:master
Fetching repository, done.
Counting objects: 11, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (11/11), 915 bytes | 0 bytes/s, done.
Total 11 (delta 8), reused 4 (delta 1)

-----> Node.js app detected
-----> Requested node range: ~0.10.15
-----> Resolved node version: 0.10.29
-----> Downloading and installing node
-----> Restoring node_modules directory from cache
-----> Pruning cached dependencies not specified in package.json
Error: Failed to replace env in config: ${NPM_AUTH}
at /tmp/build_fb6a1362-16ae-4753-b169-3a1bed157306/vendor/node/lib/node_modules/npm/node_modules/npmconf/npmconf.js:371:13
at String.replace (native)
at envReplace (/tmp/build_fb6a1362-16ae-4753-b169-3a1bed157306/vendor/node/lib/node_modules/npm/node_modules/npmconf/npmconf.js:366:12)
at parseField (/tmp/build_fb6a1362-16ae-4753-b169-3a1bed157306/vendor/node/lib/node_modules/npm/node_modules/npmconf/npmconf.js:345:7)
at /tmp/build_fb6a1362-16ae-4753-b169-3a1bed157306/vendor/node/lib/node_modules/npm/node_modules/npmconf/npmconf.js:290:15
at Array.forEach (native)
at Conf.add (/tmp/build_fb6a1362-16ae-4753-b169-3a1bed157306/vendor/node/lib/node_modules/npm/node_modules/npmconf/npmconf.js:289:21)
at ConfigChain.addString (/tmp/build_fb6a1362-16ae-4753-b169-3a1bed157306/vendor/node/lib/node_modules/npm/node_modules/npmconf/node_modules/config-chain/index.js:244:8)
at Conf.<anonymous> (/tmp/build_fb6a1362-16ae-4753-b169-3a1bed157306/vendor/node/lib/node_modules/npm/node_modules/npmconf/npmconf.js:278:10)
at fs.js:271:14


/tmp/build_fb6a1362-16ae-4753-b169-3a1bed157306/vendor/node/lib/node_modules/npm/lib/npm.js:33
throw new Error('npm.load() required')
^
Error: npm.load() required
at Object.npm.config.get (/tmp/build_fb6a1362-16ae-4753-b169-3a1bed157306/vendor/node/lib/node_modules/npm/lib/npm.js:33:11)
at exit (/tmp/build_fb6a1362-16ae-4753-b169-3a1bed157306/vendor/node/lib/node_modules/npm/lib/utils/error-handler.js:49:27)
at process.errorHandler (/tmp/build_fb6a1362-16ae-4753-b169-3a1bed157306/vendor/node/lib/node_modules/npm/lib/utils/error-handler.js:316:3)
at process.emit (events.js:95:17)
at process._fatalException (node.js:272:26)

! Push rejected, failed to compile Node.js app

To git@heroku.com:myproject.git
! [remote rejected] HEAD -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:myproject.git'

环境变量已设置,我可以通过在我的 package.json 的 engines 字段中指定版本 0.10.28 来再次推送它。

我希望了解以下内容:

  1. 更改了哪些部分: Node 、npm、npmconf 或 Heroku? (相关提交和问题的链接会很棒。)
  2. 更改是有意的还是我应该提交错误报告?

最佳答案

似乎 Node 0.10.29 发生了一些变化,导致它加载 .npmrc 配置比在构建过程中更早。我对 Heroku Node.js buildpack 进行了更改以解决这个问题。这是拉取请求:https://github.com/heroku/heroku-buildpack-nodejs/pull/114

关于node.js - Heroku 和 Node 0.10.29 : Failed to replace env in config,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24185692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com