为什么 Firebase 不部署本地模块?
Why does Firebase not deploy local module?
在本地我有一个 npm 模块,我使用 npm i --save ../shared/
在 Firebase 函数中安装了它。安装后,我在 node_modules
中找到文件夹,这是一个符号 link。我能够构建项目。到目前为止一切顺利!
但是现在无法部署Firebase功能。我在 Functions 控制台中收到以下错误:
"message": "Build failed: 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: no such file or directory, open '/workspace/node_modules/shared/package.json'\nnpm ERR! enoent This is related to npm not being able to find a file.\nnpm ERR! enoent \n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR! /www-data-home/.npm/_logs/2021-12-20T11_02_22_672Z-debug.log; Error 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": "Build failed: 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: no such file or directory, open '/workspace/node_modules/shared/package.json'\nnpm ERR! enoent This is related to npm not being able to find a file.\nnpm ERR! enoent \n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR! /www-data-home/.npm/_logs/2021-12-20T11_18_09_566Z-debug.log; Error ID: beaf8772"
你是怎么做到的?
在我的例子中,共享模块只包含类型。因此,作为解决方法,我将其发布到 NPM,然后照常安装。
此解决方法有效!
https://docs.npmjs.com/cli/v8/commands/npm-publish
虽然我对这个解决方案不是很满意,但目前已经足够好了。我会尽快 post 更好的解决方案。
在本地我有一个 npm 模块,我使用 npm i --save ../shared/
在 Firebase 函数中安装了它。安装后,我在 node_modules
中找到文件夹,这是一个符号 link。我能够构建项目。到目前为止一切顺利!
但是现在无法部署Firebase功能。我在 Functions 控制台中收到以下错误:
"message": "Build failed: 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: no such file or directory, open '/workspace/node_modules/shared/package.json'\nnpm ERR! enoent This is related to npm not being able to find a file.\nnpm ERR! enoent \n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR! /www-data-home/.npm/_logs/2021-12-20T11_02_22_672Z-debug.log; Error 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": "Build failed: 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: no such file or directory, open '/workspace/node_modules/shared/package.json'\nnpm ERR! enoent This is related to npm not being able to find a file.\nnpm ERR! enoent \n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR! /www-data-home/.npm/_logs/2021-12-20T11_18_09_566Z-debug.log; Error ID: beaf8772"
你是怎么做到的?
在我的例子中,共享模块只包含类型。因此,作为解决方法,我将其发布到 NPM,然后照常安装。
此解决方法有效!
https://docs.npmjs.com/cli/v8/commands/npm-publish
虽然我对这个解决方案不是很满意,但目前已经足够好了。我会尽快 post 更好的解决方案。