分类: typescript

  • 创建一个node typescript项目

    创建一个node typescript项目

    最近开始学习typescript,首先要解决的就是创建一个项目,功能也不要求太多,必须要什么特别的功能,只是需要ts编译,文件变动监控,最好带一个tslint。

    一般的套路自然是用yeoman,找了一圈,很多generator要不就是几年不维护,要不就是功能太多,最后选择的是generator-node-typescript。生成带gulp的项目,结构如下:

    这个脚手架生成出来的项目自带了tslint,也有自动监控变动的编译,总的来说能够用。

    但是我还有两个需求,一个是能够自动运行生成出来的脚本,这个运行本身能够自动重启,第二个是能够在开发阶段跳过tslint,开发阶段代码比较随意,很多实验性的,tslint很难过,还要兼顾两头去修复。

    第一个自动运行的需求可以用nodemon 它一方面可以将程序的输出打在console里面,一方面可以自动监控择机重启。

    var nodemon = require('gulp-nodemon');
    
    gulp.task('run', ['watch'], function () {
      nodemon({
        script: 'lib/index.js',
        watch: 'lib/'
      })
    });

    第二个需求可以用gulp-mode,定义两种模式,一种是dev,一种是prod。而tslint只在prod环境运行。也就是gulp –prod

    var mode = require('gulp-mode')({
      modes: ["prod", "dev"],
      default: "dev",
      verbose: false
    });
    
    gulp.task('lint', 'Lints all TypeScript source files', function () {
      return gulp.src(tsFilesGlob)
        .pipe(tslint({
          tslint: tslintCustom,
          formatter: 'verbose'
        }))
        .pipe(mode.prod(tslint.report()));
    });