为什么在运行METEOR时在modules.js中出现SytaxError?

时间:2019-09-17 21:57:55

标签: javascript meteor

启动流星时出现以下错误。在我的旧机器上运行正常,但现在不工作。

meteor run --port 4000 --settings .config/development/settings.json

我正在使用此命令启动流星: Meteor 1.4.1.3(即使它不适用于流星命令)

版本: node: v10.16.3 npm 6.9.0 function oneFunction() { chrome.tabs.getCurrent(function(mytab){ console.log(mytab); }) } var t=setInterval(oneFunction,1000);

1 个答案:

答案 0 :(得分:0)

默认情况下,Meteor不会编译/传输node_modules目录中的文件,因此,如果节点的捆绑版本(当前为8.15.1)不支持某些代码,它将抛出一个SyntaxError

要解决此问题,您可以通过将符号链接到项目中来告诉Meteor您想要编译该模块,此时编译器会认为它是主项目的一部分并为您编译。

或者,根据模块的不同,可以直接在模块内部导入预编译的版本。例如import 'example-module/dist/example.min.js'

因为您没有提供足够的详细信息,所以我不能告诉您这是否对您的项目有用


编辑:在feature compatibility table for node上,节点8支持休息/扩展语法...,因此可能会发生其他奇怪的情况。

您能否提供更多详细信息,包括流星版本,运行方式以及所使用的节点模块?


编辑2:

感谢您发布您的Meteor版本。流星1.4.1.3带有bundled with Node 4.6.1,它再次查看那些表,表明它不支持休息/扩展。在这种情况下,不需要符号链接策略,因为我相信node_modules以前是由1.4编译的。

您的项目中是否有.babelrc文件?
并且可以检查哪个节点模块包含问题语法吗? (检查此文件:/home/waqas/Documents/code-base/myproject/.meteor/local/build/programs/server/packages/modules.js:3284,看看是否可以找到在其中内联的模块)