0

在 ng serve 之后,我在控制台中出现错误。我该如何解决?

ERROR in ./node_modules/resolve/lib/sync.js
Module not found: Error: Can't resolve 'fs' in 'project-path\node_modules\resolve\lib'
ERROR in ./node_modules/resolve/lib/async.js
Module not found: Error: Can't resolve 'fs' in 'project-path\node_modules\resolve\lib'
ERROR in ./node_modules/tslint/lib/utils.js
Module not found: Error: Can't resolve 'fs' in 'project-path\node_modules\tslint\lib'
4

2 回答 2

2

如果您使用的是 Angular Universal

您必须提供fs在您的代码中使用的 2 个不同版本的文件,作为 2 个服务提供者,一个在带有 fs 的服务器模块中,另一个没有它。

如果这没有多大意义,请在此处查看解决方案详细信息:
https ://github.com/ngx-translate/core/issues/754#issuecomment-353616515

看来这个问题不是 Angular 9 特有的。在此处查看早期 Angular 版本的问题和解决方案示例:更新到 Angular v6 - 未找到模块:错误:无法解析“fs”

如果您不使用 Angular Universal

这可能是您的依赖项之一的问题。在这种情况下,您可以尝试告诉 Webpack(Angular 在后台使用)fs在浏览器环境(非 Node)中忽略。

这个问题的一个例子和解决方案的细节可以在这里找到:https ://stackoverflow.com/a/52367183/146656

于 2020-02-13T05:52:39.797 回答
0

第一步:您必须进行适当的备份并按照以下步骤操作

remove node_modules
remove package-lock.json
npm cache clean -f

(可选)如果您已经完成上述操作,请重新启动您的机器。并再次启动节点和角度。

第二:将以下内容添加到 karma.conf.js

webpack: { node: { fs: 'empty', } }
于 2020-02-13T05:49:53.790 回答