Node.js – SyntaxError:意外的令牌导入

我不明白什么是错的。 节点v5.6.0 NPM v3.10.6

我的代码:

(function (exports, require, module, __filename, __dirname) { import express from 'express'; 

错误:

 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:140:18) at node.js:1001:3 

虽然import确实是ES6的一部分,但不幸的是在NodeJS中还没有得到支持,而且最近才在浏览器中得到支持。

请参阅MDN上的浏览器兼容表和此节点问题 。

从James M Snell的Node.js中的ES6模块更新 :

工作正在进行中,但需要一些时间 – 目前我们至less在一年左右。

在支持本身出现之前,您将不得不继续使用经典的require语句:

 const express = require("express"); 

如果您真的想在NodeJS中使用新的ES6 / 7function,可以使用Babel进行编译。 这是一个示例服务器 。

不幸的是,Node.js不支持ES6的import

要完成你想要做的事情(导入Express模块​​),这段代码应该足够了

 var express = require("express"); 

另外,请确保您已经通过运行安装了Express

 $ npm install express 

有关学习Node.js的更多信息,请参阅Node.js文档 。

错误: SyntaxError:意外的标记导入或SyntaxError:意外的标记导出


解决scheme:将所有导入作为示例

 const express = require('express'); const webpack = require('webpack'); const path = require('path'); const config = require('../webpack.config.dev'); const open = require('open'); 

如果你可以使用'babel',试着在package.json(–presets = es2015)中添加构build脚本,如下所示。 它使预导入代码es2015

 "build": "babel server --out-dir build --presets=es2015 && webpack"