Npm 为什么我的预构建的cloud foundry节点应用程序试图获取节点_模块中已经存在的模块?

Npm 为什么我的预构建的cloud foundry节点应用程序试图获取节点_模块中已经存在的模块?,npm,npm-install,cloud-foundry,buildpack,Npm,Npm Install,Cloud Foundry,Buildpack,我有一个预构建的节点应用程序,如果启动前运行了npm安装,则不得尝试访问网络-目的是让所有内容都已存在于node\u modules目录中。它正在云铸造环境中部署 这不是代理问题-在cloud foundry应用程序转移期间,不得尝试访问注册表url。我想知道它为什么要这么做 当此应用程序部署到cloud foundry时,即使它在登台期间检测到存在节点_模块目录,它仍会尝试检索已存在于节点_模块中的基本依赖模块(如@node/types),当然,试图访问这些环境中不允许的注册表也会超时。它不尝

我有一个预构建的节点应用程序,如果启动前运行了
npm安装
,则不得尝试访问网络-目的是让所有内容都已存在于
node\u modules
目录中。它正在云铸造环境中部署

这不是代理问题-在cloud foundry应用程序转移期间,不得尝试访问注册表url。我想知道它为什么要这么做

当此应用程序部署到cloud foundry时,即使它在登台期间检测到存在
节点_模块
目录,它仍会尝试检索已存在于
节点_模块
中的基本依赖模块(如@node/types),当然,试图访问这些环境中不允许的注册表也会超时。它不尝试检索数百个其他依赖项,但出于某种原因,它认为它确实需要一些模块。例如:

   2021-03-17T16:29:57.71-0700 [STG/0] OUT        Installing any new modules (package.json + package-lock.json)
   2021-03-17T16:32:31.78-0700 [STG/0] OUT npm ERR! code ECONNREFUSED
   2021-03-17T16:32:31.78-0700 [STG/0] OUT npm ERR! errno ECONNREFUSED
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR! FetchError: request to https://<registry-fqdn>/@types%2flong failed, reason: connect ECONNREFUSED 10.x.x.x:443
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!     at ClientRequest.<anonymous> (/tmp/contents784086672/deps/0/node/lib/node_modules/npm/node_modules/node-fetch-npm/src/index.js:68:14)
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!     at ClientRequest.emit (events.js:315:20)
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!     at TLSSocket.socketErrorListener (_http_client.js:469:9)
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!     at TLSSocket.emit (events.js:315:20)
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!     at emitErrorNT (internal/streams/destroy.js:106:8)
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!     at emitErrorCloseNT (internal/streams/destroy.js:74:3)
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!     at processTicksAndRejections (internal/process/task_queues.js:80:21)
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!  FetchError: request to https://<registry-fqdn>/@types%2flong failed, reason: connect ECONNREFUSED 10.x.x.x:443
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!     at ClientRequest.<anonymous> (/tmp/contents784086672/deps/0/node/lib/node_modules/npm/node_modules/node-fetch-npm/src/index.js:68:14)
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!     at ClientRequest.emit (events.js:315:20)
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!     at TLSSocket.socketErrorListener (_http_client.js:469:9)
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!     at TLSSocket.emit (events.js:315:20)
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!     at emitErrorNT (internal/streams/destroy.js:106:8)
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!     at emitErrorCloseNT (internal/streams/destroy.js:74:3)
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!     at processTicksAndRejections (internal/process/task_queues.js:80:21) {
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!   type: 'system',
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!   errno: 'ECONNREFUSED',
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!   code: 'ECONNREFUSED',
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!   parent: 'app'
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR! }
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR!
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR! If you are behind a proxy, please make sure that the
   2021-03-17T16:32:31.79-0700 [STG/0] OUT npm ERR! 'proxy' config is set properly.  See: 'npm help config'
   2021-03-17T16:39:12.54-0700 [STG/0] OUT npm ERR! A complete log of this run can be found in:
   2021-03-17T16:39:12.54-0700 [STG/0] OUT npm ERR!     /home/vcap/.npm/_logs/2021-03-17T23_32_31_800Z-debug.log
   2021-03-17T16:39:12.56-0700 [STG/0] OUT        **ERROR** Unable to build dependencies: exit status 1
   2021-03-17T16:39:13.07-0700 [STG/0] ERR Failed to compile droplet: Failed to run all supply scripts: exit status 14
   2021-03-17T16:39:13.09-0700 [STG/0] OUT Exit status 223
   2021-03-17T16:39:13.28-0700 [STG/0] OUT Cell 5cee670a-6f6c-4510-a274-5584f197038c stopping instance 59dda306-be2f-4d08-830c-77c08ffab3f5
   2021-03-17T16:39:13.28-0700 [STG/0] OUT Cell 5cee670a-6f6c-4510-a274-5584f197038c destroying container for instance 59dda306-be2f-4d08-830c-77c08ffab3f5
   2021-03-17T16:39:13.76-0700 [API/1] ERR Failed to stage build: staging failed
2021-03-17T16:29:57.71-0700[STG/0]安装任何新模块(package.json+package lock.json)
2021-03-17T16:32:31.78-0700[STG/0]出npm错误!代码重新编译
2021-03-17T16:32:31.78-0700[STG/0]出npm错误!errno Econrefused
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!FetchError:对https://@types%2flong的请求失败,原因:connect-econnrefuse10.x.x.x:443
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!在ClientRequest。(/tmp/contents784086672/deps/0/node/lib/node_modules/npm/node_modules/node fetch npm/src/index.js:68:14)
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!在ClientRequest.emit(events.js:315:20)
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!在TLSSocket.socketErrorListener(_http_client.js:469:9)
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!在TLSSocket.emit(events.js:315:20)
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!发射错误(内部/streams/destroy.js:106:8)
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!在emitErrorCloseNT(内部/streams/destroy.js:74:3)
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!在处理和拒绝时(内部/process/task_queues.js:80:21)
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!FetchError:对https://@types%2flong的请求失败,原因:connect-econnrefuse10.x.x.x:443
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!在ClientRequest。(/tmp/contents784086672/deps/0/node/lib/node_modules/npm/node_modules/node fetch npm/src/index.js:68:14)
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!在ClientRequest.emit(events.js:315:20)
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!在TLSSocket.socketErrorListener(_http_client.js:469:9)
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!在TLSSocket.emit(events.js:315:20)
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!发射错误(内部/streams/destroy.js:106:8)
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!在emitErrorCloseNT(内部/streams/destroy.js:74:3)
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!在处理和拒绝时(内部/process/task_queues.js:80:21){
2021-03-17T16:32:31.79-0700[STG/0]输出npm错误!键入:“系统”,
2021-03-17T16:32:31.79-0700[STG/0]输出npm错误!错误号:“经济恢复”,
2021-03-17T16:32:31.79-0700[STG/0]输出npm错误!代码:“ECONREFUNCED”,
2021-03-17T16:32:31.79-0700[STG/0]输出npm错误!父项:“应用程序”
2021-03-17T16:32:31.79-0700[STG/0]输出npm错误!}
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!
2021-03-17T16:32:31.79-0700[STG/0]出npm错误!如果您支持代理,请确保
2021-03-17T16:32:31.79-0700[STG/0]出npm错误“代理”配置设置正确。请参阅:“npm帮助配置”
2021-03-17T16:39:12.54-0700[STG/0]出npm错误!此运行的完整日志可在以下位置找到:
2021-03-17T16:39:12.54-0700[STG/0]出npm错误/home/vcap/.npm/_logs/2021-03-17T23_32_31_800Z-debug.log
2021-03-17T16:39:12.56-0700[STG/0]输出**错误**无法生成依赖项:退出状态1
2021-03-17T16:39:13.07-0700[STG/0]错误无法编译液滴:无法运行所有供应脚本:退出状态14
2021-03-17T16:39:13.09-0700[STG/0]退出状态223
2021-03-17T16:39:13.28-0700[STG/0]出单元5cee670a-6f6c-4510-a274-5584f197038c停止实例59dda306-be2f-4d08-830c-77c08ffab3f5
2021-03-17T16:39:13.28-0700[STG/0]外单元5cee670a-6f6c-4510-a274-5584f197038c销毁容器,例如59dda306-be2f-4d08-830c-77c08ffab3f5
2021-03-17T16:39:13.76-0700[API/1]阶段生成错误失败:阶段生成失败
有什么想法吗

编辑#1 其他事实:

  • 该应用程序作为zip存档推送
  • zip文件系统包括
    node\u modules
    目录,该目录是在构建zip文件的“构建”过程中运行的
    npm install
    命令生成的
  • zip文件系统包括
    package lock.json
    (源代码)
  • zip存档中没有
    .cfignore
    文件
  • zip“构建”以前是在windows计算机上进行的,以前在随后推送到cf时没有这个问题
  • zip“构建”最近从k8s集群迁移到gitlab ci运行程序,该集群可能使用centos派生的映像
  • buildpack版本是1.7.32
  • 生成计算机上的节点版本(14.14.0)与buildpack使用的版本匹配,但npm版本(7.6.1)不匹配(buildpack使用6.14.8)
  • 将组装zip的构建映像更改为Ubuntu Bionic Beaver(18.04.4 LTS)没有任何区别

  • 虽然不能100%肯定这会解决问题,但我看到的是,人们在尝试使用vendor Node.js依赖项时经常会遇到的问题:

    首先,查看文档中的说明: