创建一个node typescript项目

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载自夜明的孤行灯

本文链接地址: https://www.huangyunkun.com/2017/01/02/create-node-typescript-project/

最近开始学习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()));
});

 

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载自夜明的孤行灯

本文链接地址: https://www.huangyunkun.com/2017/01/02/create-node-typescript-project/

发表评论