为什么我在运行 METEOR 时.js模块中出现 SytaxError?



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

W20190918-11:37:00.641(5)? (STDERR) /home/waqas/Documents/code-base/myproject/.meteor/local/build/programs/server/packages/modules.js:3284
W20190918-11:37:00.644(5)? (STDERR)             ...this._options,
W20190918-11:37:00.645(5)? (STDERR)             ^^^
W20190918-11:37:00.645(5)? (STDERR)           
W20190918-11:37:00.645(5)? (STDERR) SyntaxError: Unexpected token ...
W20190918-11:37:00.645(5)? (STDERR)     at Object.exports.runInThisContext (vm.js:53:16)
W20190918-11:37:00.646(5)? (STDERR)     at /home/waqas/Documents/code-base/myproject/.meteor/local/build/programs/server/boot.js:287:30
W20190918-11:37:00.646(5)? (STDERR)     at Array.forEach (native)
W20190918-11:37:00.646(5)? (STDERR)     at Function._.each._.forEach (/home/waqas/.meteor/packages/meteor-tool/.1.4.1_3.1ujjc8o.xamr++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11)
W20190918-11:37:00.647(5)? (STDERR)     at /home/waqas/Documents/code-base/myproject/.meteor/local/build/programs/server/boot.js:128:5

我正在使用此命令启动流星:meteor run --port 4000 --settings .config/development/settings.json(即使它不与 meteor 命令一起使用(

版本:Meteor 1.4.1.3node: v10.16.3npm 6.9.0

Meteor 默认不会编译/转译node_modules目录中的文件,所以如果有捆绑版本的 node(当前8.15.1(不支持的代码,它会抛出SyntaxError

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

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

我无法告诉您这是否适用于您的项目,因为您没有提供足够的细节


编辑:查看节点的功能兼容性表,节点 8 支持休息/传播语法...,因此这可能是其他奇怪的事情。

您能否提供更多细节,包括 Meteor 版本、您如何运行它以及您使用的节点模块?


编辑 2:

感谢您发布您的流星版本。Meteor 1.4.1.3 与 Node 4.6.1 捆绑在一起,再次查看这些表,表明它不支持休息/传播。在这种情况下,不需要符号链接策略,因为我相信node_modules曾经由 1.4 编译。

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

最新更新