我实际上对antlr有问题。我在Visual Studio代码中使用angular。我知道如何在项目中包括和编写语法。但是,现在我遇到了启动它时发生错误的问题:
“ ./ node_modules / antlr4 / CharStreams.js中的错误 找不到模块:错误:无法解析“ C:\ Users \ simon \ antlrTestProject \ node_modules \ antlr4”中的“ fs” ./node_modules/antlr4/FileStream.js中的错误 找不到模块:错误:无法解析'C:\ Users \ simon \ antlrTestProject \ node_modules \ antlr4'中的'fs'“
我发现在角度6+中fs不再可用。不幸的是,我发现无法解决这个问题。
答案 0 :(得分:0)
为了在node.js之外使用ANTLR JavaScript运行时,您需要配置webpack以排除node.js中存在的某些模块,而不是浏览器中存在的某些模块。来自the docs:
在webpack.config文件中,使用以下命令排除仅node.js模块:
node: { module: "empty", net: "empty", fs: "empty" }
答案 1 :(得分:0)
如果建议的解决方案不起作用,那么如果它是一个有角度的CLI项目,那么有一个不被推荐的解决方案对我有用。
转到node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/webpack-configs/browser.js
有一个带有键值的json:
node: null
将其更改为:
node: { fs: "empty" }
这显然是一个可怕的解决方案,因为:
如果有一种方法可以迫使这种改变,那将是一个更可行的解决方案