Tag: babeljs

Babel 6 regeneratorRuntime没有定义

我试图使用asynchronous,从头开始在巴别塔6,但我越来越regeneratorRuntime没有定义。 .babelrc文件 { "presets": [ "es2015", "stage-0" ] } package.json文件 "devDependencies": { "babel-core": "^6.0.20", "babel-preset-es2015": "^6.0.15", "babel-preset-stage-0": "^6.0.15" } .js文件 "use strict"; async function foo() { await bar(); } function bar() { } exports.default = foo; 通常没有asynchronous/等待使用它就好了。 任何想法我做错了什么?

Webpack babel 6 ES6装饰器

我有一个使用webpack作为我的捆绑软件在ES6中编写的项目。 大部分的编译工作正常,但是当我尝试在任何地方包含装饰器时,我得到这个错误: Decorators are not supported yet in 6.x pending proposal update. 我查看了babel的问题跟踪器,并没有find任何东西,所以我假设我用错了。 我的webpackconfiguration(相关位): loaders: [ { loader: 'babel', exclude: /node_modules/, include: path.join(__dirname, 'src'), test: /\.jsx?$/, query: { plugins: ['transform-runtime'], presets: ['es2015', 'stage-0', 'react'] } } ] 我没有任何其他问题,箭头function,解构所有工作正常,这是唯一不起作用。 我知道我总是可以降级到babel 5.8,但是如果有什么方法可以在当前版本(v6.2.0)中使用,它将会有所帮助。

如何在使用babel和webpack时生成源映射?

我是新来的webpack,我需要一手设置生成源代码。 我webpack serve运行webpack serve ,编译成功。 但我真的需要源代码。 这是我的webpack.config.js 。 var webpack = require('webpack'); module.exports = { output: { filename: 'main.js', publicPath: '/assets/' }, cache: true, debug: true, devtool: true, entry: [ 'webpack/hot/only-dev-server', './src/components/main.js' ], stats: { colors: true, reasons: true }, resolve: { extensions: ['', '.js', '.jsx'], alias: { 'styles': __dirname + '/src/styles', 'mixins': __dirname + […]

为什么没有instanceof在babel-node下的Error子类的实例上工作?

我看到在OS X上运行babel-node版本6.1.18 /节点版本5.1.0时, instanceof运算符不能运行在Error子类的实例上。为什么? 相同的代码在浏览器中运行良好,请尝试我的小提琴示例。 下面的代码在浏览器中输出true ,而在babel-node下则为false: class Sub extends Error { } let s = new Sub() console.log(`The variable 's' is an instance of Sub: ${s instanceof Sub}`) 我只能想象这是由于babel-node中的错误,因为instanceof对于其他基类的工作比Error 。 .babelrc { "presets": ["es2015"] } 编译输出 这是由babel 6.1.18编译的JavaScript: 'use strict'; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a […]

用Babel在ES6中扩展内置的本机

我使用Babel来扩展我的类与内置本地数组 class NewArray extends Array { first() { return this[0]; } } var a = new NewArray(1, 2, 3); console.log(a.length); // 3 console.log(a); // [ 1, 2, 3 ] console.log(a.first()); // trigger error 在a.first()中,我得到这个错误: console.log(a.first()); ^ TypeError: a.first is not a function 我应该做更多的事情来扩展一个内置的本地? 谢谢!

babel-loader jsx SyntaxError:意外的标记

我是React + Webpack的初学者。 我在你好世界的networking应用程序中发现了一个奇怪的错误。 我在webpack中使用babel-loader来帮助我把jsx转换成js,但是好像babel不能理解jsx的语法。 这是我的依赖: "devDependencies": { "babel-core": "^6.0.14", "babel-loader": "^6.0.0", "webpack": "^1.12.2", "webpack-dev-server": "^1.12.1" }, "dependencies": { "react": "^0.14.1" } 这是我的webpack.config.js var path = require('path'); module.exports = { entry: ['webpack/hot/dev-server',path.resolve(__dirname, 'app/main.js')], output: { path: path.resolve(__dirname, 'build'), filename: 'bundle.js' }, module: { loaders: [ { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader"} ] } }; […]

使用Node.js需要与ES6导入/导出

在我正在合作的一个项目中,我们有两个select我们可以使用的模块系统: 使用require导入模块,并使用module.exports和module.exports导出。 使用ES6 import导入模块,并使用ES6 export 使用其中一个有什么性能好处? 如果我们要在节点上使用ES6模块,还有什么我们应该知道的吗?

在JavasScript ECMAScript 6中从string创build对象

我想使用ES6创build对象工厂,但旧式的语法不适用于新的。 我有下一个代码: export class Column {} export class Sequence {} export class Checkbox {} export class ColumnFactory { constructor() { this.specColumn = { __default: 'Column', __sequence: 'Sequence', __checkbox: 'Checkbox' }; } create(name) { let className = this.specColumn[name] ? this.specColumn[name] : this.specColumn['__default']; return new window[className](name); // this line throw error } } let factory = new […]

为什么babel重写导入的函数调用(0,fn)(…)?

给定一个input文件 import { a } from 'b'; function x () { a() } 巴贝尔将编译它 'use strict'; var _b = require('b'); function x() { (0, _b.a)(); } 但是在松散模式下编译时,函数调用会以_b.a();forms输出_b.a(); 我已经做了一些研究,在那里添加逗号运算符,希望有一个解释它的评论。 负责添加它的代码在这里 。

Babel 6改变了它如何导出默认值

之前,babel会添加line module.exports = exports["default"] 。 它不再这样做。 这是什么意思是我可以做之前: var foo = require('./foo'); // use foo 现在我必须这样做: var foo = require('./foo').default; // use foo 不是一个巨大的交易(我猜这是它应该一直以来)。 问题是,我有很多代码依赖于以前的工作方式(我可以将其大部分转换为ES6import,但不是全部)。 任何人都可以给我提示,如何使旧的方式工作,而不必通过我的项目,并解决这个问题(甚至一些如何编写codemod做这个指令将是非常光滑的指令)。 谢谢! 例: input: const foo = {} export default foo 用Babel输出5 "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var foo = {}; exports["default"] = foo; module.exports = exports["default"]; 用Babel […]