鍍金池/ 問(wèn)答/HTML/ babel-node無(wú)法執(zhí)行對(duì)象解構(gòu)

babel-node無(wú)法執(zhí)行對(duì)象解構(gòu)

// index.js
const arr = [
  { name: 'allen', age: 19 },
  { name: 'kobe', age: 20 }
];

const newArr = [...arr];// 正確
console.log(arr, newArr);

const a = {name:'tracy'};
const b = {...a};// 語(yǔ)法錯(cuò)誤
console.log(a,b);

執(zhí)行

babel-node index.js

報(bào)錯(cuò)如下

 Unexpected token 
at Parser.pp$5.raise (C:\Users\Administrator\AppData\Roaming\npm\node_modules\babel-cli\node_modules\babylon\lib\index.js:4454:13)
    at Parser.pp.unexpected (C:\Users\Administrator\AppData\Roaming\npm\node_modules\babel-cli\node_modules\babylon\lib\index.js:1761:8)
    at Parser.pp$3.parseIdentifier (C:\Users\Administrator\AppData\Roaming\npm\node_modules\babel-cli\node_modules\babylon\lib\index.js:4332:10)
    at Parser.pp$3.parsePropertyName (C:\Users\Administrator\AppData\Roaming\npm\node_modules\babel-cli\node_modules\babylon\lib\index.js:4156:96)
    at Parser.pp$3.parseObj (C:\Users\Administrator\AppData\Roaming\npm\node_modules\babel-cli\node_modules\babylon\lib\index.js:4045:12)
    at Parser.pp$3.parseExprAtom (C:\Users\Administrator\AppData\Roaming\npm\node_modules\babel-cli\node_modules\babylon\lib\index.js:3719:19)
    at Parser.pp$3.parseExprSubscripts (C:\Users\Administrator\AppData\Roaming\npm\node_modules\babel-cli\node_modules\babylon\lib\index.js:3494:19)
    at Parser.pp$3.parseMaybeUnary (C:\Users\Administrator\AppData\Roaming\npm\node_modules\babel-cli\node_modules\babylon\lib\index.js:3474:19)
    at Parser.pp$3.parseExprOps (C:\Users\Administrator\AppData\Roaming\npm\node_modules\babel-cli\node_modules\babylon\lib\index.js:3404:19)
    at Parser.pp$3.parseMaybeConditional (C:\Users\Administrator\AppData\Roaming\npm\node_modules\babel-cli\node_modules\babylon\lib\index.js:3381:19)

為什么數(shù)組支持...而對(duì)象不支持?

回答
編輯回答
尐飯團(tuán)

原因:object-rest-spread 還處于 stage 階段,還屬于實(shí)驗(yàn)性屬性

解決方案:安裝插件transform-object-rest-spread, 放到.babelrc 配置項(xiàng)上,即可使用。

2018年8月9日 12:38