Angular 如果fs发生错误,如何使用antlr?

Angular 如果fs发生错误,如何使用antlr?,angular,typescript,visual-studio-code,antlr4,Angular,Typescript,Visual Studio Code,Antlr4,事实上,我对antlr有一个问题。我在VisualStudio代码中使用angular。我知道如何在项目中包含和编写语法。但是,现在我遇到了一个问题,启动时出错: “在./node_modules/antlr4/CharStreams.js中出错 未找到模块:错误:无法解析“C:\Users\simon\AntlTestProject\node\U modules\antlr4”中的“fs” ./node_modules/antlr4/FileStream.js中出错 未找到模块:错误:无法解析

事实上,我对antlr有一个问题。我在VisualStudio代码中使用angular。我知道如何在项目中包含和编写语法。但是,现在我遇到了一个问题,启动时出错:

“在./node_modules/antlr4/CharStreams.js中出错 未找到模块:错误:无法解析“C:\Users\simon\AntlTestProject\node\U modules\antlr4”中的“fs” ./node_modules/antlr4/FileStream.js中出错 未找到模块:错误:无法解析“C:\Users\simon\AntlTestProject\node\U modules\antlr4”中的“fs”


我发现fs在angular 6+中不再可用。不幸的是,我没有找到解决这个问题的方法。

为了在node.js之外使用ANTLR JavaScript运行时,您需要将webpack配置为排除node.js中存在但不在浏览器中的某些模块。发件人:

在webpack.config文件中,仅排除node.js模块,使用:
node:{module:“empty”,net:“empty”,fs:“empty”}


如果建议的解决方案不起作用,那么如果是angular CLI项目,有一个确实不推荐的解决方案对我有效

转到node_modules/@angular devkit/build angular/src/angular cli files/models/webpack configs/browser.js

有一个带有键值的json:

node: null
改为:

node: { fs: "empty" }
这显然是一个可怕的解决方案,因为:

  • 每次更新包时,您都必须进行更改
  • 您的团队必须意识到这一变化并加以应用

如果有办法迫使这种改变,那将是一个更可行的解决方案

不幸的是,我不熟悉webpack。在一些讨论中,我还发现:“node:{module:“empty”、net:“empty”、fs:“empty”}不再可能。可能还有其他解决方案吗?@Simon你能链接到这些讨论吗?这是链接:不过我找到了一个更简单的解决方案。如果出现此问题,您可以将以下内容添加到package.json文件中:{“fs”:false,“path”:false,“os”:false}这是否回答了您的问题?