首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Babel的yeoman应用程序中的ES6模块

基于Babel的yeoman应用程序中的ES6模块
EN

Stack Overflow用户
提问于 2015-07-31 20:48:09
回答 2查看 1.1K关注 0票数 1

我正在尝试编写一些ES6代码。看到yeoman生成器会自动为您转换ES6代码和Babel (https://github.com/yeoman/generator-webapp),我决定使用它。

在我试着使用模块之前,它一直运转良好。

我的进口是这样的:

代码语言:javascript
复制
import {GameEngine} from './game-engine.js';

我的出口是这样的:

代码语言:javascript
复制
export class GameEngine {

因此,babel为我介绍了这一点,据我所知,它实际上在默认情况下将模块更改为requirejs。当我查看我的转换代码时,我看到了以下内容:

进口:

代码语言:javascript
复制
var _gameEngine = require('game-engine');

出口:

代码语言:javascript
复制
Object.defineProperty(exports, '__esModule', {
    value: true
});

我得到了这个控制台错误:

未定义的ReferenceError:导出未定义@博弈-工程. is :3

未定义的ReferenceError: require未定义@ main.js:1

我尝试过手动包含需求,但仍然会出现错误。

有没有人用获得模块?我很想把这事办好。

谢谢你,罗伯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-11 16:24:49

我最近也遇到了同样的问题。Babel没有负责模块管理。您必须将所有JS文件打包到一个唯一的文件中。为此,我使用了褐变。

我在这篇文章中找到了我需要的东西:http://advantcomp.com/blog/ES6Modules/ (归档帖子)

票数 0
EN

Stack Overflow用户

发布于 2016-02-14 11:21:05

希望你能找到解决办法。如果没有,您可以为此创建一个gulp任务:

代码语言:javascript
复制
var gulp = require('gulp'),
    browserify = require("browserify"),
    babelify = require("babelify"),
    buffer = require('vinyl-buffer'),
    source = require('vinyl-source-stream'),
    sourcemaps = require('gulp-sourcemaps');

gulp.task('buildJs', function() {
    return browserify({
        entries: './app/src/app.js',
        debug: true
    })
    .transform(babelify)
    .bundle()
    .pipe(source('bundle.js'))
    .pipe(buffer())
    .pipe(sourcemaps.init({loadMaps: true}))
    .pipe(sourcemaps.write('./'))
    .pipe(gulp.dest(DEST+'/src'));
}); 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31754929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档