簡體   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