Skip to content

Instantly share code, notes, and snippets.

@azu
Last active August 18, 2020 07:19
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save azu/fbbc18dffafde4eb7535 to your computer and use it in GitHub Desktop.
Save azu/fbbc18dffafde4eb7535 to your computer and use it in GitHub Desktop.
tsconfig + gulp-typescript

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/'));
});
@Gil-Epshtain
Copy link

Thanks, very helpful

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment