尝试从GCP存储中列出存储桶时出现Module not found: Can't resolve 'fs'
错误。
import { Storage } from '@google-cloud/storage';
const googleCloud = new Storage({
keyFilename: '../../my-project-c1a44bf80be3.json',
projectId: 'my-project',
});
googleCloud.getBuckets().then((x: any) => console.log(x));
my-project-c1a44bf80be3.json
(从GCP下载)存在,并且是项目级别 *
错误:
event - compiled successfully
event - build page: /
wait - compiling...
error - ./node_modules/@google-cloud/storage/build/src/file.js:24:0
Module not found: Can't resolve 'fs'
null
Could not find files for / in .next/build-manifest.json
event - compiled successfully
使用googleapis时出现相同的错误。但是,它不是在./node_modules/@google-cloud/storage/build/src/file.js:24:0
中,而是在googleapis
附带的google-auth-library
模块中。
使用yarn
添加。
4条答案
按热度按时间t1rydlwq1#
当您在客户端导入或引用firebase-admin时,通常会发生这种情况,请检查您的代码中可能调用的错误导入
代替
bejyjqdl2#
发布评论中提供的解决方案以供查看。
在您的webpack配置中,您可以指定某些模块(如fs)应该被删除;此时,您应该能够在客户端运行此库。例如:
jaql4c8m3#
我也遇到过同样的问题,但this guide是我的解决方案。如前所述,问题是
firebase-admin
包设计为在NodeJs环境中运行,而不是在客户端上运行。用某些条目扩展webpack.config.js
或next.config.js
并没有为我解决这个问题。解决方案是将
firebase-admin
调用移动到NextJS API,您可以在/pages/api
文件夹中创建NextJS API。下面是从客户端获取单个用户数据的示例。
您需要:
/src/lib/firebase.ts
:firebase初始化/src/pages/api/user.ts
:NextJS API处理程序/src/components/xyz.tsx
:客户端上的组件,调用API在客户端,您只需对自己的API执行GET操作
型
jdg4fx2g4#
你所描述的情况现在正在由谷歌处理。虽然没有ETA,但这个问题正在被优先处理。