我不明白出了什么问题。我检查了其他论坛谈论转译和通天塔。我需要做什么?
node -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
原文由 Stefdelec 发布,翻译遵循 CC BY-SA 4.0 许可协议
ES6 导入是最近引入的功能,当前稳定版本的 Node 还不支持它们。 Node.js 问题跟踪器对此有一个 未解决 的问题 - 但在 V8 和 Node 添加对此功能的支持之前,您将需要使用转译器(最流行的是 babel )才能使用导入。
为了快速尝试转译,babel 提供了一个基于 Web 的 REPL。 这个 演示了您的代码正在被转译。
babel 项目主页 指向了开始使用 Babel 并将其与您的开发工作流程集成的相关资源。
对于最简单的设置,请访问此 设置页面 并在 Babel 内置部分中选择 CLI。
这基本上涉及三个简单的步骤:
npm install --save-dev babel-cli babel-preset-es2015
.babelrc
配置文件:echo '{ "presets": ["es2015"] }' > .babelrc
./node_modules/.bin/babel src -d lib
上述设置页面还说明了如何添加 npm 脚本以简化最后一步。或者,您可以将 babel 与您的编辑器或构建链集成,以便您的文件在更改时自动编译。