从另一个文件导入typescript类

时间:2016-08-30 12:51:05

标签: typescript

刚开始使用打字稿,我试图简单地将一个类从一个文件导入到另一个文件,听起来很简单..但我一直收到错误:

  

renderer.js:6未捕获的ReferenceError:未定义导出

我的主要输入文件app.ts:

import {Renderer} from '../ts/renderer.ts';
var renderer = new Renderer();
console.log("-- Start --");

我在渲染器中有这个.ts:

export class Renderer {  
}

我正在使用Gulp将我的打字稿编译成js。这是我正在使用的:

var gulp    = require('gulp');
var tsc     = require('gulp-typescript-compiler');
var $       = require('gulp-load-plugins')();

gulp.task('ts-compile', function () {
  return gulp
    .src('ts/**/*.ts')
    .pipe(tsc({
        module: "commonjs",
        target: "es5",
        moduleResolution: "node",
        sourcemap: true,
        logErrors: true
    }))
    .pipe(gulp.dest('app'));
});

gulp.task('js-compile', function () {
    return gulp
        .src(['app/**/*.js'])
        .pipe($.sourcemaps.init())
        .pipe($.concat('main.js'))
        .pipe($.sourcemaps.write())
        .pipe(gulp.dest('js'));
});

gulp.task('watch-all', function() {
    gulp.watch(['ts/**/*.ts'], ['ts-compile']);
    gulp.watch(['app/**/*.js'], ['js-compile']);
});

任何人都有任何想法为什么会抛出这个错误?我的app.ts文件似乎没有编译,因为“import”行可以解释错误,但这对我来说是正确的。

1 个答案:

答案 0 :(得分:0)

您需要使用browserify才能在浏览器中使用CommonJS模块。

幸运的是,你大部分都在那里。您只需将Invalid class替换为gulp-browserifytsify插件即可。

以下是Gulpfile的示例

gulp-typescript-compiler