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

IT技术 node.js reactjs webpack redux google-cloud-platform
2021-05-16 13:14:56

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

我遇到的错误 -

未找到 ./~/google-cloud/~/hash-stream-validation/index.js module中的警告:错误:无法解析“/home/linuxbox/React-Workspace/Kaptify/node_modules”中的“fast-crc32c” /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 关键依赖:依赖的请求是一个表达式

有人可以帮我解决这个问题吗?

1个回答

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

尝试将其放入您的 webpack 配置中:

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

解释

用于后端的module实际上并不是为了将它们捆绑在一起而制作的(请参阅:带有 Webpack 的后端应用程序)。所以我们使用 webpack 的externals配置来排除不能很好地处理捆绑的库。当应用程序运行时,它们只是像往常一样require()node_modules目录中取出

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