试图将类导出为模块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;
我正试着像这个一样使用汽车模块
main.js
var Car = require("./models/Car");
let must = new Car('Mustang');
console.log(must.printCurrentSpeed());
我正在使用browserfy和babelify转换为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进行转换。polyfill也是自动需要的。
我的问题是,我正在开发一个同构的React.js应用程序,babelify browserify转换很好,我的bundle.js文件被正确地传输。这是我脚本的服务器端部分的一个问题,因为它没有用babel编译到ES6。
我希望这并不意味着我的源文件中需要ES6和ES5的重复副本,因为这是我试图避免的,通过browserify babelify转换,我可以在ES6中编码,只指向main.js文件。
这是我的示例react服务器存储库,我基于此,我基本上是使用node jsx从node中透明地要求()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节点或使用带有--harmony标志的节点来运行具有es6功能的脚本
答案是,我可以使用babel节点或使用带有--harmony标志的节点来运行具有es6功能的脚本。
以下是一些使用babel-node server
的alt/iso同构反应实例,它们展示了这种方法。
- 使用systemJS的相对动态加载,使用ES6/Babel语法
- 正在导出带有ES6(Babel)的类
- 试图将类导出为模块ES6-babel
- 使用 Babel 转译器导入类并调用带有 ES6 模块的静态方法
- 使用 Babel 将 ES6 模块转换为 ES5 AMD 模块,无法按预期工作
- 使用webpack和babel加载程序导入导出ES6模块
- ES6 模块不适用于 babel 6 和 gulp
- “ReferenceError: require is not defined”,同时使用 ES6/Babel 创建 R
- 未找到递归要求的Browserify模块(后Babel transfile)
- ES6(babel+webpack)类方法中的静默错误
- 在Babel中导出es6类-找不到模块
- 如何用Babel在ES6中编写一个与CommonJS、AMD和Browser兼容的模块?
- Chrome中的ES6 - Babel源地图和箭头函数的词法范围
- 在ES6/Babel中重新导出整个模块
- 获取模块ES6
- 全局声明的顶级变量(ES6 Babel)
- ES6/Babel版本绑定到一个对象的函数
- React + Flux, ES6, Babel ActionCreate使用json-server和超级代理,数据不响
- 在ES6 + babel中使用bluebird承诺导入类(构造函数)
- Tyepscript/es6 模块由 babel/webpack 导出为具有默认属性的_esModule