0

我正在尝试使用 es6ify 浏览 javascript es6 代码。我的代码使用了三个 js 库(一个 webgl 抽象库),在我尝试将 traceur 编译器运行时添加到包的顶部之前,一切都运行良好。

这是我的 gulp 任务(问题一定与 gulp 无关):

gulp.task('build', function(){

    browserify({debug: true})
    .add(es6ify.runtime)
    .transform(es6ify)
    .require(require.resolve('./app/index.js'), {entry: true})
    .bundle()
    .pipe(source('bundle.js'))
    .pipe(gulp.dest('./build/'));

});

在我的应用程序的某个地方,我正在尝试执行以下操作:

import THREE from 'three';

var toto = new THREE.WebGLRenderer([...]);

失败了,因为THREE实际上是一个空对象,因此WebGLRenderer是未定义的。

THREE js 在 node package.json 的依赖中,一般情况下 THREE JS 都导入好了。但是当我add(es6ify.runtime)在我的构建过程中添加时,它会导致require('three')一个空对象......

有什么我想念的吗?

谢谢!

4

1 回答 1

0

好吧,很抱歉给您带来不便,我刚刚找到了解决方案。如果我只是从 traceur 编译中排除节点模块,它可以工作:

所以而不是:

.transform(es6ify)

我现在有了:

.transform(es6ify.configure(/^(?!.*node_modules)+.+\.js$/))

(这是一个 es6ifyAPI 文档示例)

顺便说一句,编译速度更快:-)

于 2015-01-08T10:01:04.233 回答