ES6项目无法编译,因为找不到模块

时间:2015-03-13 16:11:59

标签: gulp browserify ecmascript-6

我正在尝试将我的ES6类编译成可在浏览器中运行的东西。不幸的是,当我运行gulp时,我收到以下错误

Error: Cannot find module 'IDB' from 'my-project/src'

所以,只是为了了解项目结构

my-project/
    gulpfile.js
    src/
        app.js
        IDB.js

多数民众赞成。 src中的文件如下所示:

app.js

import IDB from 'IDB';

class View {
    constructor(options) { ... }
    render() { ... }
}

IDB.js

export class IDB { 
    constructor(options) { ... }
    render() { ... }
}

最后,我的gulpfile.js看起来像是:

gulp.task('default', function() {
    browserify('./src/app.js', { debug: true })
        .transform(to5ify)
        .bundle()
        .pipe(source('bundle.js'))
        .pipe(buffer())
        .pipe(sourcemaps.init({loadMaps: true})) 
        .pipe(sourcemaps.write('./')) // writes .map file
       .pipe(gulp.dest('./build'));
});

因此,由于某种原因,它无法解决依赖关系。有什么建议可能是错的吗?

1 个答案:

答案 0 :(得分:1)

在您的IDB.js文件中将其更改为

export default class IDB { 
    constructor(options) { ... }
    render() { ... }
}

这应该正确导出IDB类作为模块。 在app.js中,将导入更改为文件的相对路径,如下所示:

import IDB from './IDB';