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"