![](/img/trans.png)
[英]Mocha 6, Babel 7, ES6: SyntaxError: Unexpected token export
[英]Babel NodeJS ES6: SyntaxError: Unexpected token export
我正在嘗試使用 babel 來運行我的 NodeJS 程序,其中包括 ES6 語法和來自 Colyseus 庫的導出。 但是,當我運行命令時:
babel-node server.js
出現以下錯誤消息:
export class MyRoom extends colyseus.Room {
^^^^^^
SyntaxError: Unexpected token export
下面是我的 package.json 文件:
{
"name": "app",
"version": "1.0.0",
"description": "a description",
"main": "server.js",
"scripts": {
"test": "babel-node server.js",
"build": "babel-node server.js"
},
"author": "henryzhu",
"license": "ISC",
"dependencies": {
"actionhero": "^19.1.2",
"colyseus": "^0.9.33",
"easytimer.js": "^2.3.0",
"express": "^4.16.3",
"socket.io": "^2.1.0",
"socketio": "^1.0.0",
"uniqid": "^5.0.3"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-preset-es2015": "^6.24.1"
}
}
下面是我的 server.js 文件:
var colyseus = require("colyseus");
var http = require("http");
var express = require("express");
var port = process.env.port || 3000;
var app = express();
app.use(express.static("public", { dotfiles: 'allow' }));
var gameServer = new colyseus.Server({
server: http.createServer(app)
});
export class MyRoom extends colyseus.Room {
// When room is initialized
onInit (options) { }
}
gameServer.listen(port);
添加具有以下內容的配置文件( .babel.config.js
):
module.exports = {
presets: [
'@babel/preset-env'
]
};
然后運行:
babel-node --config-file .babel.config.js server.js
babel-node 大概期望節點樣式模塊語法:
module.exports = ...
而不是 es6 風格:
export class ...
編輯:
您可以通過指定一個 .babelrc 文件來修復它,如下所示:
{
"presets": ["env"]
}
安裝了包 babel-preset-env
在下面添加一個配置文件(babel.config.js)對我有用。 另外,順序很重要。 預設應該在所有插件之前。
module.exports = {
presets: [['@babel/preset-env',{targets: {node:
'current',},loose:true,},],],
plugins: [
'@babel/plugin-syntax-dynamic-import',
'@babel/plugin-syntax-import-meta',
[
'@babel/plugin-transform-runtime',
{
useESModules: true,
},
],
],
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.