私は2つの異なるJSバンドルを作成する必要があるtypescriptプロジェクトに取り組んでいます.1つはadminのバンドル、もう1つはすべてのバンドルです。私はgulp-typescriptからjsストリームを複製しようとしていましたが、バンドルに関連するファイルをフィルタリングしてストリームをマージし、ソースマップを書きました。ただし、タスクを実行した後は、バンドルは作成されません。複数のバンドルとソースマップを持つgulp-typescript
gulpfile.js
var config = {
src: {
ts:['./Content/Scripts/TypeScript/**/*.ts']
},
bundles: {
dashboard: [
'**/Controller/Widgets/**/*.js',
'**/Services/Widgets/**/*.js'
],
core: [
'**/Common/**/*.js',
'**/Server/**/*.js',
'**/Controller/Search/**/*.js'
]
}
}
gulp.task('build-ts', function() {
var tsResult = gulp.src(config.src.ts)
.pipe(srcMap.init())
.pipe(tsProj());
var bundleStreams = [
tsResult.js
.pipe(clone())
.pipe(filter(config.bundles.core))
.pipe(concat(config.outFiles.bundles.core)),
tsResult.js
.pipe(clone())
.pipe(filter(config.bundles.dashboard))
.pipe(concat(config.outFiles.bundles.dashboard))
];
return merge([
merge(bundleStreams)
.pipe(srcMap.write())
.pipe(gulp.dest(config.dist.main)),
tsResult.dts
.pipe(concat(config.outFiles.typeDef))
.pipe(gulp.dest(config.dist.main))
]);
});
package.json
{
"devDependencies": {
"gulp": "^3.9.1",
"gulp-clone": "^1.0.0",
"gulp-concat": "^2.6.1",
"gulp-filter": "^5.0.0",
"gulp-sourcemaps": "^2.4.1",
"gulp-typescript": "^3.1.4",
"merge2": "^1.0.3",
"typescript": "2.2.1"
},
}
注:ソースtypescriptですファイルは名前空間ではないモジュールを使用しています。
ことを願っています –