将 google-cloud 与 webpack 集成时遇到问题

Posted

技术标签:

【中文标题】将 google-cloud 与 webpack 集成时遇到问题【英文标题】:Getting an issue while integrating google-cloud with webpack 【发布时间】:2017-08-12 17:51:29 【问题描述】:

我正在将 google-cloud npm 包与我的 react 应用程序集成,并且我正在使用 firebase。

我遇到的错误 -

./~/google-cloud/~/hash-stream-validation/index.js 模块中的警告 未找到:错误:无法解析“fast-crc32c” '/home/linuxbox/React-Workspace/Kaptify/node_modules/google-cloud/node_modules/hash-stream-validation' @ ./~/google-cloud/~/hash-stream-validation/index.js 5:8-30 @ ./~/google-cloud/~/@google-cloud/storage/src/file.js @ ./~/google-cloud/~/@google-cloud/storage/src/index.js @ ./~/google-cloud/src/index.js @ ./src/actions/UserStateStore.js @ ./app.js@multi (webpack)-dev-server/client?http://127.0.0.1:3000 webpack/hot/dev-server ./app.js

./~/google-cloud/~/google-auto-auth/index.js 53:13-58 中的警告 关键依赖:依赖的请求是一个表达式

./~/google-cloud/~/grpc/src/node/src/grpc_extension.js 中的警告 38:14-35 关键依赖:依赖的请求是 表达

./~/google-cloud/~/node-pre-gyp/lib/pre-binding.js 19:22-48 中的警告 关键依赖:依赖的请求是一个表达式

./~/google-cloud/~/node-pre-gyp/lib/util/versioning.js 中的警告 15:20-67 关键依赖:依赖的请求是 表达

谁能帮我解决这个问题?

【问题讨论】:

你在前端代码还是后端代码中使用google-cloud?如果是前端,你可能想使用这个库:developers.google.com/api-client-library/javascript/start/… 【参考方案1】:

我看到你在使用 webpack,我假设你在后端使用 google-cloud 库。

试着把它放在你的 webpack 配置中:

config = 
    // ...
    externals: 
        '@google-cloud/storage': 'commonjs @google-cloud/storage'
    ,
    // ...

说明

用于后端的模块并不是真正为将它们捆绑在一起而制作的(请参阅:Backend Apps with Webpack)。所以我们使用 webpack 的 externals 配置来排除不能很好地处理捆绑的库。当应用程序运行时,它们只是像往常一样从node_modules 目录中获得require()

如果您不想逐个指定有问题的模块,请尝试使用webpack-node-externals 自动排除所有模块。

【讨论】:

这如何解决问题?当您将 webpacked javascript 带到其他地方时,由于缺少模块,它将无法工作 @OdedNiv 如果您为正在制作的库执行此操作,您需要将您排除在 dependencies 中的软件包列在 package.json 中,这样任何消耗您的库的东西也会下载必要的模块。 他说他正在将 google-cloud 与他的“react 应用程序”集成,这与库相反

以上是关于将 google-cloud 与 webpack 集成时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

ReferenceError:导入@google-cloud/storage 时分配的左侧无效

如何使用 Google PubSub 确认 (@google-cloud/pubsub)

为啥@google-cloud/profiler 在 GKE 实例中运行时会抛出“permission_denied”错误?

GCP - 无法在 Cloud Run 中使用 Google Secret Manager (@google-cloud/secret-manager)

使用 google-cloud 库执行 BigQuery 查询时出现异常

使用 Cloud Functions for Firebase 和 @google-cloud/storage 删除图像时出现问题