我一直在寻找解决方案,但似乎没有任何效果。
我在一篇旧文章(Node v6 在对象传播上失败)中读到,这个问题从 node v8.3 开始已经解决,但它似乎对我不起作用。
我有 Nodejs (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)
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
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)
Run Code Online (Sandbox Code Playgroud)
这是输出,如果我console.log(newProject):
{ name: 'My test', slug: 'my-test', user_id: 1 }
Run Code Online (Sandbox Code Playgroud)
有谁能够帮助我?
我通过安装 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 }]]
Run Code Online (Sandbox Code Playgroud)
这会变魔术。
发生这种情况是因为对象的传播运算符仍处于 ecmascript 批准的第 3 阶段。
希望它可以帮助某人!
| 归档时间: |
|
| 查看次数: |
3960 次 |
| 最近记录: |