标签: babeljs

Babel 6.x中不能要求()默认导出值

在Babel 5.x中,我可以编写以下代码:

app.js

export default function (){}
Run Code Online (Sandbox Code Playgroud)

index.js

require('babel/register');
require('./app')();
Run Code Online (Sandbox Code Playgroud)

然后,我可以运行node index.js没有错误.但是,使用Babel 6.x,运行以下代码

index.es6.js

require('babel-core/register');
require('./app')();
Run Code Online (Sandbox Code Playgroud)

导致错误

require(...)不是函数

我想知道为什么?

javascript ecmascript-6 babeljs

78
推荐指数
3
解决办法
3万
查看次数

babel CLI复制nonjs文件

我正在运行一个babel cli命令

babel src --out-dir lib
Run Code Online (Sandbox Code Playgroud)

将es6脚本从src复制到lib.但是,它不会复制我在src /文件夹中的css/scss文件.有没有办法让它复制它们?

babeljs

75
推荐指数
2
解决办法
2万
查看次数

Browserify,Babel 6,Gulp - 扩展运算符上的意外标记

我正在尝试让我的Browserify/Babelify/Gulp在我的项目中工作,但它不会占用传播操作符.

我从gulpfile中得到了这个错误:

[SyntaxError: /Users/mboutin2/Desktop/Todo-tutorial/src/reducers/grocery-list-reducers.js: Unexpected token (16:8) while parsing file: /Users/mboutin2/Desktop/Todo-tutorial/src/reducers/grocery-list-reducers.js]
Run Code Online (Sandbox Code Playgroud)

这是我的gulpfile.js

var gulp = require('gulp');
var source = require('vinyl-source-stream');
var browserify = require('browserify');
var sourcemaps = require('gulp-sourcemaps');
var uglify = require('gulp-uglify');
var buffer = require('vinyl-buffer');
var babelify = require('babelify');

gulp.task('build', function () {
  return browserify({entries: './src/client/app.js', extensions: ['.js'], debug: true})
    .transform(babelify, {presets: ['es2015', 'react']})
    .bundle()
    .on('error', function (err) {
      console.error(err);
      this.emit('end');
    })
    .pipe(source('app.min.js'))
    .pipe(buffer())
    .pipe(sourcemaps.init({loadMaps: true}))
    .pipe(uglify())
    .pipe(sourcemaps.write('./'))
    .pipe(gulp.dest('./public/js'));
});

gulp.task('default', ['build']);
Run Code Online (Sandbox Code Playgroud)

我试图创建一个.babelrc文件,但它做同样的事情.当我删除传播操作符时,我的脚本工作.

这是发生Unexpected令牌的文件(非常简单).

import utils from '../utils/consts';

const …
Run Code Online (Sandbox Code Playgroud)

javascript browserify ecmascript-6 gulp babeljs

74
推荐指数
2
解决办法
3万
查看次数

在使用create-react-app的React应用程序中填充ES6功能的最佳方法

我一直在Internet Explorer上测试我的React.js应用程序,令我惊讶的是,ES6代码就像Array.prototype.includes()打破它一样.我正在使用creat-react-app入门套件,我认为babel是其中的一部分,并且它允许我编写ES6代码.

事实证明它并不那么简单.从我所看到的,他们选择不包括大量的polyfill,因为不是每个人都需要它,并且它减慢了构建时间.例如,在此处此处查看.有人试图记录这一点,但没有提到如何自己实际进行填充.只是这个:

如果您使用任何其他需要运行时支持的ES6 +功能(例如Array.from()或Symbol),请确保手动包含相应的polyfill,或者您所定位的浏览器已经支持它们.

那么......"手动"包含它们的最佳方式是什么?我认为那是babel用于什么的一部分?我应该部分导入babel-polyfill的元素吗?

ecmascript-6 reactjs babeljs create-react-app

74
推荐指数
3
解决办法
5万
查看次数

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

我看到instanceof操作符在OS X上的babel-node版本6.1.18/Node版本5.1.0 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}`)
Run Code Online (Sandbox Code Playgroud)

我只能想象这是由于babel-node中的一个bug,因为它instanceof适用于其他基类Error.

.babelrc

{
  "presets": ["es2015"]
}
Run Code Online (Sandbox Code Playgroud)

编译输出

这是babel 6.1.18编译的JavaScript:

'use strict';

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this …
Run Code Online (Sandbox Code Playgroud)

javascript node.js ecmascript-6 babeljs

73
推荐指数
2
解决办法
1万
查看次数

将ES6 Iterable转换为Array

假设你有一个类似数组的Javascript ES6 Iterable,你事先知道它的长度是有限的,将它转换为Javascript数组的最佳方法是什么?

这样做的原因是许多js库(如下划线和lodash)仅支持Arrays,因此如果您希望在Iterable上使用它们的任何函数,则必须首先将其转换为Array.

在python中,您可以使用list()函数.在ES6中是否有相同的东西?

javascript arrays iterable ecmascript-6 babeljs

70
推荐指数
3
解决办法
4万
查看次数

目前尚未启用对实验语法"classProperties"的支持

当我在Django项目中设置React时,我遇到了这个错误

模块构建中的ModuleBuildError失败(来自./node_modules/babel-loader/lib/index.js):SyntaxError:C:\ Users\1Sun\Cebula3\cebula_react\assets\js\index.js:支持实验语法'classProperties '目前尚未启用(17:9):

  15 | 
  16 | class BodyPartWrapper extends Component {
> 17 |   state = {
     |         ^
  18 | 
  19 |   }
  20 | 

Add @babel/plugin-proposal-class-properties (https://git.io/vb4SL) to the 
'plugins' section of your Babel config to enable transformation.
Run Code Online (Sandbox Code Playgroud)

所以,我安装了@ babel/plugin-proposal-class-properties并把它放在babelrc中

的package.json

{
  "name": "cebula_react",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "webpack-dev-server --config ./webpack.config.js --mode development",
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack --config prod.config.js"
  },
  "keywords": [],
  "author": "", …
Run Code Online (Sandbox Code Playgroud)

babel reactjs webpack babeljs

70
推荐指数
11
解决办法
5万
查看次数

如何运行启用ES6功能的Node.js应用程序?

我用的是需要挂钩BabelJS(原名6to5)与运行节点的应用程序es6features:

// run.js
require("babel/register");
require("./app.js6");
Run Code Online (Sandbox Code Playgroud)

我打电话node run.js来运行我的app.js6.我需要安装BabelJS并提供run.js每个我想使用es6features项目.我更喜欢这样的电话nodejs6 app.js6.如何独立实现此系统(Unix和Windows)?

javascript node.js ecmascript-6 babeljs

69
推荐指数
5
解决办法
8万
查看次数

使用多个入口点包含babel polyfill的最佳方法是什么

我使用多个入口点的webpack配置:

var fs = require('fs');
var webpack = require('webpack');
var commonsPlugin = new webpack.optimize.CommonsChunkPlugin('common.[hash].js');

module.exports = {
    cache: true,
    entry: {
        main: './resources/assets/js/main.js',
        services: './resources/assets/js/services.js'
    },
    output: {
        path: './public/assets/web/js',
        filename: '[name].[hash].js',
        publicPath: '/assets/web/js/',
        chunkFilename: '[id].[chunkhash].js'
    },
    resolve: {
        modulesDirectories: ['node_modules', 'web_modules', 'modules']
    },
    module: {
        loaders: [{
            test: /\.js$/,
            exclude: [/node_modules/, /web_modules/],
            loader: 'babel-loader',
            query: {
                stage: 0
            }
        }]
    },
    plugins: [commonsPlugin,
        new webpack.ProvidePlugin({
            jQuery: 'jquery',
            $: 'jquery',
            'window.jQuery': 'jquery'
        }),
        function() {
            this.plugin('done', function(stats) {
                fs.writeFile('./cache.json', JSON.stringify({ …
Run Code Online (Sandbox Code Playgroud)

webpack babeljs

69
推荐指数
2
解决办法
5万
查看次数

Webpack导入返回undefined,具体取决于导入的顺序

我正在使用webpack + babel.我有三个模块看起来像这样:

// A.js

// some other imports here
console.log('A');
export default 'some-const';

// B.js

import someConst from './A';
console.log('B', someConst);
export default 'something-else';

// main.js

import someConst from './A';
import somethingElse from './B';
console.log('main', someConst);
Run Code Online (Sandbox Code Playgroud)

何时main.js执行,我看到以下内容:

B undefined
A
main some-const
Run Code Online (Sandbox Code Playgroud)

如果我交换进口main.js,B成为第一个,我得到:

A
B some-const
main some-const
Run Code Online (Sandbox Code Playgroud)

为什么在第一个版本中B.js获取undefined而不是模块?怎么了?

javascript webpack babeljs

66
推荐指数
1
解决办法
2万
查看次数