angular-electron 应用程序中的 Winston 记录器

Winston logger in angular-electron application

我正在研究 angular + 电子申请。我正在使用 angular 版本 8。我正在尝试将记录器添加到我的应用程序中,并且为了记录电子部分,我正在尝试使用 winston 记录器。

在我的应用程序中添加 winston 配置文件后,我在 npm 运行 build

上收到以下错误
ERROR in ./node_modules/winston/dist/winston/tail-file.js
Module not found: Error: Can't resolve 'fs' in 'C:\Users\node_modules\winston\dist\winston'
ERROR in ./node_modules/winston/dist/winston/transports/file.js
Module not found: Error: Can't resolve 'fs' in 'C:\Users\node_modules\winston\dist\winston\transports'
ERROR in ./node_modules/winston/dist/winston/transports/http.js
Module not found: Error: Can't resolve 'http' in 'C:\Users\node_modules\winston\dist\winston\transports'
ERROR in ./node_modules/winston/dist/winston/transports/http.js
Module not found: Error: Can't resolve 'https' in 'C:\Users\node_modules\winston\dist\winston\transports'
ERROR in ./node_modules/winston/dist/winston/transports/file.js
Module not found: Error: Can't resolve 'zlib' in 'C:\Users\node_modules\winston\dist\winston\transports'

即使在 package.json 中定义了这些依赖项之后,我也无法解决这些问题。

如何解决这些问题?

这些问题是由于损坏的节点模块造成的。一些论坛建议答案,例如在 webpack 配置中将 fs 标记为空,但这不是一个好的解决方案,因为通过将 fs 设置为 false 我们强行说 webpack 不要使用我们的项目将来可能需要的 fs。

对我来说,这个问题是通过删除 package-lock.json 和节点模块并再次在开放网络中安装新的节点模块来解决的。