4

在使用 parcel 的时候,很多人遇到了一个问题:

async function bundle(main, command) {
      ^^^^^^^^ 
SyntaxError: Unexpected token function

对于这个错误,很多人似曾相识,以为是 babel 配置的问题。

但是 parcel 号称是零配置,是不需要配置 babel 的。

如果使用全局安装 parcel,会发现这个是 parcel 自身的报错:

在 parcel 的 package.json 文件写着

"engines": {
    "node": ">= 6.0.0"
},

所以 parcel 是支持 6.x 版本的。

而且在 parcel 的入口文件也有版本判断:

// Node 8 supports native async functions - no need to use compiled code!
module.exports = parseInt(process.versions.node, 10) < 8
  ? require('./lib/Bundler')
  : require('./src/Bundler');

但是在 parcel 的 bin/cli.js 文件中却使用了 async 函数

所以,使用 parcel 时还是把 nodejs 版本升级到 8.x 吧。


justjavac
47.8k 声望15.9k 粉丝

会写点 js 代码