有一个测试项目,其结构:
是文件* .ts:
////// greeter.ts
import {ActionsCollection} from "./actionsCollection";
class Greeter extends ActionsCollection{
}
var greeter = new Greeter();
alert(greeter.greet("Hello, world!"));
////// actionsCollection.ts
export class ActionsCollection{
public say (){
}
public greet(greeting :string) {
return "<h1>"+greeting+"</h1>";
}
}
///// newTS.ts
export class NewTS{
public foo (){
return "<h1>foo</h1>";
}
}
是gulpfile:
var gulp = require('gulp');
var debug = require('gulp-debug');
var webpack = require('gulp-webpack');
gulp.task('default', function() {
return gulp.src('ts/greeter.ts')
.pipe(webpack({
output: {
filename: 'main.js'
},
resolve: {
extensions: ['', '.webpack.js', '.web.js', '.ts', '.js']
},
module: {
loaders: [
{ test: /\.ts$/, loader: 'ts-loader' }
]
}
}))
.pipe(debug({title:'src'}))
.pipe(gulp.dest('js/'));
});
gulp.task('watch', ['default'], function() {
gulp.watch('ts/**/*.ts', ['default']);
});
所有这一切都被编译成单个文件main.js,但编译以奇怪的方式工作。例如,当我更改actionsCollection.ts
文件时,并不总是触发编译。如果我创建了一个新的new.ts
文件,并且如果没有在greeter.ts
或actionsCollection.ts
中导入该文件,那么他就不会属于公共文件 - main.js
。这很糟糕,因为这些文件存在,并且可以隐式调用它们的方法。
如何做正确的事情?你可以帮我编辑我的gulpfile吗?