【问题标题】:Why does Firebase not deploy local module?为什么 Firebase 不部署本地模块?
【发布时间】:2022-01-22 00:39:01
【问题描述】:

在本地,我有一个 npm 模块,我使用 npm i --save ../shared/ 在 Firebase 函数中安装它。安装后,我在node_modules 中找到文件夹,这是一个符号链接。我能够构建项目。到目前为止一切顺利!

但现在我无法部署 Firebase 功能。我在函数控制台中收到以下错误:

"message": "构建失败:npm ERR!code ENOENT\nnpm ERR!syscall open\nnpm ERR!path /workspace/node_modules/shared/package.json\nnpm ERR!errno -2\nnpm ERR!enoent ENOENT : 没有这样的文件或目录,打开'/workspace/node_modules/shared/package.json'\nnpm ERR!enoent 这与npm 找不到文件有关。\nnpm ERR!enoent \n\nnpm ERR!A此运行的完整日志可在以下位置找到:\nnpm ERR!/www-data-home/.npm/_logs/2021-12-20T11_02_22_672Z-debug.log;错误 ID:beaf8772"

可能 Firebase 没有部署符号文件夹?在firebase.json 中,我更新了预部署命令以删除符号文件夹并将其复制:

"predeploy": [
  "rm -r \"$RESOURCE_DIR\"/node_modules/shared",
  "mkdir \"$RESOURCE_DIR\"/node_modules/shared",
  "cp -r ./shared/. \"$RESOURCE_DIR\"/node_modules/shared",
  "npm --prefix \"$RESOURCE_DIR\" run build"
]

这些命令会删除符号文件夹并复制文件。我在node_modules 中找到它们。

但这也不起作用,因为我再次收到相同的错误消息。

"message": "构建失败:npm ERR!code ENOENT\nnpm ERR!syscall open\nnpm ERR!path /workspace/node_modules/shared/package.json\nnpm ERR!errno -2\nnpm ERR!enoent ENOENT : 没有这样的文件或目录,打开'/workspace/node_modules/shared/package.json'\nnpm ERR!enoent 这与npm 找不到文件有关。\nnpm ERR!enoent \n\nnpm ERR!A此运行的完整日志可在以下位置找到:\nnpm ERR!/www-data-home/.npm/_logs/2021-12-20T11_18_09_566Z-debug.log;错误 ID:beaf8772"

你是怎么做到的?

【问题讨论】:

    标签: firebase npm google-cloud-functions


    【解决方案1】:

    在我的例子中,共享模块只包含类型。因此,作为解决方法,我将其发布到 NPM,然后照常安装。

    此解决方法有效!

    https://docs.npmjs.com/cli/v8/commands/npm-publish

    虽然我对这个解决方案并不满意,但目前它已经足够好了。我会尽快发布更好的解决方案。

    【讨论】:

      猜你喜欢
      • 2019-07-15
      • 2019-12-12
      • 1970-01-01
      • 2018-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-15
      • 2018-03-31
      相关资源
      最近更新 更多