我正在使用最新版本的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
我应该安装哪些Node.js版本才能使用这些ES6代码?
答案 0 :(得分:14)
我解决这个问题的一种方法......
为项目安装babel东西:
$ npm install babel-register babel-preset-es2015 --save-dev
创建一个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');
然后,创建一个名为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!'))
并运行:
$ node index.js
答案 1 :(得分:-1)
const express = require('express'); 是正确的语法,因为es6的某些功能(即从express导入import express)当前不适用于节点!