节点错误:SyntaxError: Unexpected token import

新手上路,请多包涵

我不明白出了什么问题。我检查了其他论坛谈论转译和通天塔。我需要做什么?

 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 许可协议

阅读 1.3k
2 个回答

ES6 导入是最近引入的功能,当前稳定版本的 Node 还不支持它们。 Node.js 问题跟踪器对此有一个 未解决 的问题 - 但在 V8 和 Node 添加对此功能的支持之前,您将需要使用转译器(最流行的是 babel )才能使用导入。

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

babel 项目主页 指向了开始使用 Babel 并将其与您的开发工作流程集成的相关资源。

对于最简单的设置,请访问此 设置页面 并在 Babel 内置部分中选择 CLI。

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

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

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

原文由 lorefnon 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你不想处理 babel。这个对我有用。

 const calc = require('./my_calc');
let {add, multiply} = calc;

原文由 Mahendran 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题