一尘不染

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

node.js

我不明白怎么了。我在其他论坛上讨论了翻译和通天塔。我需要做什么?

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

阅读 250

收藏
2020-07-07

共1个答案

一尘不染

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

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

巴贝尔项目主页指向为相关资源入门巴贝尔和你的开发工作流程相集成。

对于最简单的设置,请访问此设置页面,然后在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与您的编辑器或构建链集成在一起,以便在更改时自动编译文件。

2020-07-07