ES6导入语句在Node v8.4.0中不起作用

Gij*_*ese 7 node.js

我正在使用最新版本的Node.js,即v8.4.0.但是,在导入和导出语句中,我收到错误:

import express from 'express';
                                                              ^^^^^^

SyntaxError: Unexpected token import
    at createScript (vm.js:74:10)
    at Object.runInThisContext (vm.js:116:10)
    at Module._compile (module.js:537:28)
    at Object.Module._extensions..js (module.js:584:10)
    at Module.load (module.js:507:32)
    at tryModuleLoad (module.js:470:12)
    at Function.Module._load (module.js:462:3)
    at Function.Module.runMain (module.js:609:10)
    at startup (bootstrap_node.js:158:16)
    at bootstrap_node.js:598:3
Run Code Online (Sandbox Code Playgroud)

我应该安装什么Node.js版本才能使用这些ES6代码?

  • 操作系统 - Ubuntu 17.04
  • node -v:v8.4.0
  • npm -v:5.3.0

Chr*_*ahl 23

我解决这个问题的一种方法......

为项目安装babel东西:

$ npm install babel-register babel-preset-es2015 --save-dev
Run Code Online (Sandbox Code Playgroud)

创建一个index.js文件,它是应用程序的主要入口点:

// index.js 
// by requiring `babel/register`, all of our successive `require`s will be Babel'd
require('babel-register')({
   presets: [ 'es2015' ]
});

require('./server');
Run Code Online (Sandbox Code Playgroud)

然后,创建一个名为server.js的文件,它将具有您的普通索引代码:

// server.js
import express from 'express';

var app = express()

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(3000, () => console.log('Example app listening on port 3000!'))
Run Code Online (Sandbox Code Playgroud)

并运行:

$ node index.js 
Run Code Online (Sandbox Code Playgroud)