簡體   English   中英

Babel NodeJS ES6:SyntaxError:意外的令牌導出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM