刚开始使用打字稿,我试图简单地将一个类从一个文件导入到另一个文件,听起来很简单..但我一直收到错误:
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”行可以解释错误,但这对我来说是正确的。
答案 0 :(得分:0)
您需要使用browserify才能在浏览器中使用CommonJS模块。
幸运的是,你大部分都在那里。您只需将Invalid class
替换为gulp-browserify和tsify插件即可。
以下是Gulpfile的示例
gulp-typescript-compiler