@google-cloud/logging 可以在 Ionic4/Angular8/Firebase 客户端应用中使用吗



我想在应用程序中使用 nodejs-logging,使用 Ionic 4、Angular 8 和 Firebase 将日志写入 StackDriver。

在应用程序根目录中,我执行以下操作:

  1. npm 安装@google-cloud/logging
  2. 转到 @google-cloud/logging/build/proto/logging.d.ts,并添加以下导入语句:import {Long} from "protobufjs";
  3. 在 @google-cloud/logging/build/proto/logging.config.d.ts 中执行相同的操作
  4. 构建 Ionic 应用程序

但是,我从许多不同的核心节点模块中获得了模块未找到错误的列表:crypto,child_process,fs,os,net,path,http,http2,stream,tls和zlib。

错误消息如下:

错误在 ./node_modules/google-gax/build/src/operationsClientBrowser.js Module 未找到:错误:无法解析 中的"./operations_client_config" '/home/pam/strata1/strata_forms_app/node_modules/google-gax/build/src' 错误在 ./node_modules/@google-cloud/common/node_modules/google-auth-library/build/src/auth/googleauth.js 找不到模块:错误:无法解析 中的"child_process" '/home/pam/strata1/strata_forms_app/node_modules/@google-cloud/common/node_modules/google-auth-library/build/src/auth' 错误在 ./node_modules/@google-cloud/logging/node_modules/google-auth-library/build/src/auth/googleauth.js 找不到模块:错误:无法解析 中的"child_process" '/home/pam/strata1/strata_forms_app/node_modules/@google-cloud/logging/node_modules/google-auth-library/build/src/auth' 错误在 ./node_modules/@google-cloud/common/node_modules/google-auth-library/build/src/crypto/node/crypto.js 找不到模块:错误:无法解析 中的"加密" '/home/pam/strata1/strata_forms_app/node_modules/@google-cloud/logging/node_modules/google-auth-library/build/src/crypto/node' 错误 ./node_modules/@opencensus/propagation-stackdriver/build/src/stackdriver-format.js 找不到模块:错误:无法解析 中的"加密" '/home/pam/strata1/strata_forms_app/node_modules/@opencensus/propagation-stackdriver/build/src' 错误 ./node_modules/@opencensus/propagation-stackdriver/build/src/v1.js

我是配置 webpack的新手,但我尝试将 webpack.config.js 文件添加到@google-cloud/logging/build/src以及包含以下配置更改的<ionic_app_root>./src

module.exports = {
//...
node: {
console: false,
global: true,
process: true,
__filename: 'mock',
__dirname: 'mock',
Buffer: true,
setImmediate: true,
child_process: 'empty',
crypto: 'empty',
fs: 'empty',
os: 'empty',
net: 'empty',
path: 'empty',
http: 'empty',
http2: 'empty',
stream: 'empty',
tls: 'empty',
zlib: 'empty',
}
};

鉴于这个库被描述为一个 StackDriver 节点.js客户端库,我希望它可以在 Ionic4 + Angular8 + Firebase 应用程序中工作。

- Node.js version: 11.10.0
- npm version: 6.7.0
- `@google-cloud/logging` version: 5.2.2
- AngularCLI: 8.2.3
- typescript: 3.5.3
- webpack 4.39.2

正如您在 GitHub [1] 中收到的响应中所述:

"我们正在努力使库与 Webpack 一起使用成为可能,但这可能需要更多时间。原因是该库使用 gRPC(通过 HTTP/2 发送协议缓冲区(,而 gRPC 无法轻松进行网络打包。当这项工作正在进行中时,您可以尝试使用我们不太复杂的库 https://github.com/googleapis/google-api-nodejs-client/tree/master/src/apis/logging(它通过HTTP/1发送纯JSON,因此是可Webpackable的(。或者,在服务器端处理日志记录调用。

谷歌API的团队

我正在分享 Github 中提供的答案,以帮助其他开发人员解决类似问题。

[1] https://github.com/googleapis/nodejs-logging/issues/566

最新更新