【问题标题】:es6ify.runtime makes my THREE js importing empty objectes6ify.runtime 让我的三个 js 导入空对象
【发布时间】:2015-01-08 09:33:03
【问题描述】:

我正在尝试使用 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是未定义的。

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

有什么我错过的吗?

谢谢!

【问题讨论】:

    标签: javascript node.js browserify ecmascript-6 traceur


    【解决方案1】:

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

    所以而不是:

    .transform(es6ify)
    

    我现在有:

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

    (这是an es6ifyAPI documentation 示例)

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

    【讨论】:

      猜你喜欢
      • 2014-08-17
      • 2018-06-12
      • 2015-09-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 2019-03-14
      • 1970-01-01
      • 2021-08-25
      相关资源
      最近更新 更多