使用gulp-webpack组装打字稿

时间:2016-04-19 11:10:03

标签: javascript typescript gulp webpack gulp-webpack

有一个测试项目,其结构:

structure

是文件* .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.tsactionsCollection.ts中导入该文件,那么他就不会属于公共文件 - main.js。这很糟糕,因为这些文件存在,并且可以隐式调用它们的方法。

如何做正确的事情?你可以帮我编辑我的gulpfile吗?

0 个答案:

没有答案