节点错误:SyntaxError:意外的令牌导入

我不明白什么是错的。 我侃侃而谈其他论坛,谈论的是翻译和巴贝尔。 我需要做什么? 谢谢。 节点-v:v5.5.0

我的代码:

import recast from 'recastai' 

和错误

 (function (exports, require, module, __filename, __dirname) { import recast from 'module1' ^^^^^^ SyntaxError: Unexpected token import at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:387:25) at Object.Module._extensions..js (module.js:422:10) at Module.load (module.js:357:32) at Function.Module._load (module.js:314:12) at Function.Module.runMain (module.js:447:10) at startup (node.js:139:18) at node.js:999:3 

ES6导入是最近推出的function,目前的稳定版本的节点不支持它们。 Node.js问题跟踪器有一个开放的问题 – 但是,直到V8和Node添加这个function的支持,你将需要使用一个转换器(最stream行的一个是babel )能够使用导入。

为了快速尝试翻译,babel提供了一个基于Web的REPL。 这一个演示你的代码被转译。

babel项目主页指向Babel入门的相关资源并将其与您的开发工作stream程整合。

要获得最简单的设置,请访问此设置页面,然后在Babel内置部分中selectCLI。

这基本上涉及三个简单的步骤:

  1. 安装babel-cli: npm install --save-dev babel-cli
  2. 创build.babelrcconfiguration文件: echo '{ "presets": ["es2015"] }' > .babelrc
  3. 使用已安装的模块来传输您的源代码: ./node_modules/.bin/babel src -d lib

上述设置页面还说明了如何添加一个npm脚本来简化最后一步。 或者,您可以将babel与您的编辑器或编译链集成,以便在更改时自动编译文件。

使用巴贝尔最新的预设

  • 安装最新的预置yarn add --dev babel-preset-latest

  • 创build.babelrc并添加以下{ "presets": ["latest"] }

  • 运行脚本npx babel-node yourscript.js

  • 或者在你的package.json文件中添加

"scripts": { "start": "babel-node index.js" }