繁体   English   中英

试图将类导出为模块ES6 babel

[英]Trying to export a class as a module ES6 babel

我有一个ES6类,我试图导出为模块,但是我收到一个错误SyntaxError:意外的保留字

Car.js

class Car {
    constructor(make) { 
        this.make = make;
        this.currentSpeed = 25;
    }

    printCurrentSpeed(){
          console.log(this.make + ' is going ' + this.currentSpeed + ' mph.');
    }
}

module.exports = Car;

我试图像这样使用Car模块

main.js

var Car = require("./models/Car");

let must = new Car('Mustang');
console.log(must.printCurrentSpeed());

我正在使用带有babelify的browserify转换为ES6

browserify -t babelify main.js -o public/scripts/bundle.js",

我是否正确地导出了汽车模块,或者我做错了什么?

要求babel / register解决您的问题吗?

require('babel/register');

如上所述: https//babeljs.io/docs/usage/require/

具有扩展名.es6,.es,.jsx和.js的节点所需的所有后续文件将由Babel转换。 也可以自动要求填充。

我的问题是我正在研究一个同构的React.js应用程序和babelify browserify转换很好,我的bundle.js文件正在被编译。 这是我的脚本的服务器端部分的问题,因为这没有被编译到带有babel的ES6。

我希望这并不意味着我需要在我的源文件中复制我的ES6和ES5副本,因为这是我试图避免的,并且使用browserify babelify转换我能够在ES6中编码并且只是指向main.js文件。

这是我的示例反应服务器存储库我基于此,我基本上使用node- jsx从节点内透明地要求()jsx,所以我只需要一种方法与babel这样做。

require('node-jsx').install(); 
var express = require('express');
var React = require('react');
var APP = require('./app'); // the JSX app with calls to ES6 modules
var app = express();
var port = 3000;
var ip = '127.0.0.1';

app.get('/', function(req, res) {
  var markup = React.renderToString(APP());
  res.send(markup);
});

更新:我认为类似于这个问题我可以使用babel-node或使用带有--harmony标志的节点来运行带有es6功能的脚本

答案是我可以使用babel-node或使用带有--harmony标志的节点来运行带有es6功能的脚本。

以下是使用babel-node server演示此方法的示例alt / iso Isomorphic React示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM