azu/typescript1.5-es6module-npm at tsconfig-gulp
tsconfigが未対応なtsc1.4でもtsconfig.jsonをただの設定ファイル置き場として使う例。
filesGlob
はatom-typescriptの独自拡張だけど
.
├── README.md
├── build
│ ├── bundle.js
│ └── bundle.js.map
├── gulpfile.js
├── lib
│ ├── add.js
│ ├── add.js.map
│ ├── index.js
│ ├── index.js.map
│ ├── mult.js
│ ├── mult.js.map
├── package.json
├── src
│ ├── add.ts
│ ├── index.ts
│ ├── mult.ts
│ └── tsconfig.json
└── test
src/tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"outDir": "../lib/",
"sourceMap": true
},
"filesGlob": [
"./**/*.ts",
"!./node_modules/**/*.ts"
],
"files": [
"./add.ts",
"./index.ts",
"./mult.ts"
]
}
gulpfile.js:
"use strict";
var gulp = require("gulp");
var ts = require("gulp-typescript");
var browserify = require('browserify');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var gutil = require('gulp-util');
var uglify = require('gulp-uglify');
var sourcemaps = require('gulp-sourcemaps');
gulp.task('scripts', function() {
var tsconfig = require("./src/tsconfig.json");
var filesGLob = tsconfig.filesGlob;
return gulp.src(filesGLob)
.pipe(ts(tsconfig.compilerOptions))
.pipe(gulp.dest('lib'));
});
gulp.task('build', ["scripts"], function(){
var b = browserify({
entries: './lib/index.js',
debug: false,
});
return b.bundle()
.pipe(source('bundle.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
// Add transformation tasks to the pipeline here.
.pipe(uglify())
.on('error', gutil.log)
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('./build/'));
});
Thanks, very helpful