我一直在寻找解决方案已有一段时间,但似乎无济于事。
我已经读到一篇旧文章(Node v6 failing on object spread),指出从节点v8.3开始,此问题已得到解决,但似乎不适用于我。
我对Node.js(v10.15.3)和散布运算符有疑问。实际上,每当我尝试使用它们时,都会出现此错误:
SyntaxError: /Users/gabriele/models/Project.js: Unexpected token (15:8)
13 | return {
14 | id: res.insertId,
> 15 | ...newProject
| ^
16 | };
17 | } catch ({ sqlMessage }) {
18 | console.log(sqlMessage);
at Parser.pp$5.raise (/Users/gabriele/Websites/pages-api/node_modules/babylon/lib/index.js:4454:13)
at Parser.pp.unexpected (/Users/gabriele/Websites/pages-api/node_modules/babylon/lib/index.js:1761:8)
at Parser.pp$3.parseIdentifier (/Users/gabriele/Websites/pages-api/node_modules/babylon/lib/index.js:4332:10)
at Parser.pp$3.parsePropertyName (/Users/gabriele/Websites/pages-api/node_modules/babylon/lib/index.js:4156:96)
at Parser.pp$3.parseObj (/Users/gabriele/Websites/pages-api/node_modules/babylon/lib/index.js:4045:12)
at Parser.pp$3.parseExprAtom (/Users/gabriele/Websites/pages-api/node_modules/babylon/lib/index.js:3719:19)
at Parser.pp$3.parseExprSubscripts (/Users/gabriele/Websites/pages-api/node_modules/babylon/lib/index.js:3494:19)
at Parser.pp$3.parseMaybeUnary (/Users/gabriele/Websites/pages-api/node_modules/babylon/lib/index.js:3474:19)
at Parser.pp$3.parseExprOps (/Users/gabriele/Websites/pages-api/node_modules/babylon/lib/index.js:3404:19)
at Parser.pp$3.parseMaybeConditional (/Users/gabriele/Websites/pages-api/node_modules/babylon/lib/index.js:3381:19)
这是我的代码:
...
return {
id: res.insertId,
...newProject
};
...
如果我是console.log(newProject)
,则为输出:
{ name: 'My test', slug: 'my-test', user_id: 1 }
有人可以帮助我吗?
答案 0 :(得分:1)
我通过安装transform-object-rest-spread(https://www.npmjs.com/package/babel-plugin-transform-object-rest-spread)进行了修复。
您可以使用npm install --save-dev babel-plugin-transform-object-rest-spread
进行安装。
然后您需要添加.babelrc:
"plugins": [["transform-object-rest-spread", { "useBuiltIns": true }]]
这会神奇。
发生这种情况是因为对象的散布运算符仍处于ecmascript批准的第三阶段。
希望它可以帮助某人!