2017-07-03 124 views
3

我希望TypeScript编译器能够使用node_modules/firebase/firebase.d.ts来检查我的代码,并将node_modules/firebase/firebase.js捆绑到某些从Firebase导入东西的文件中。我知道有many options这将为我做,但我想保持最小的开发环境。如何让TypeScript捆绑来自node_modules的第三方库?

我在我的tsconfig.json中设置了"moduleResolution": "node",导入定义和类型时会根据需要检查我的代码。我还添加了"isolatedModules": true,试图让实际代码捆绑到我的每个目标中,但生成的代码并未按照我的意愿捆绑firebase.js。是否有"module"编译器选项可以为我做到这一点,还是应该添加其他内容?

如果我绝对需要我的开发过程中的另一个工具,tsc最简单的补充是什么,它会将我的每个JS文件+它们的依赖项捆绑到一个js文件包中?

+0

您应该考虑缩小下来到你的第一句话的问题。最后两个短语提出了一个单独的问题,它不仅含糊不清,而且还得到了解答:https://stackoverflow.com/questions/35062852/npm-vs-bower-vs-browserify-vs-gulp-vs- grunt-vs-webpack –

+0

我的问题特别是最后一个 - 我应该使用“tsc”进行捆绑吗?我将删除类型检查,因为这很清楚'tsc'是为什么设计的。好点,谢谢。 –

+1

这也可能是重复的:https://stackoverflow.com/q/40019087/1233251虽然它专门提到了Node.js模块,但它涵盖了为什么'tsc'通常不用于捆绑。 –

回答

3

tsc是一个编译器,而不是一个捆绑器。 This question阐述了捆绑一下。

在TypeScript中开发时,gulp​​可以提供观察者和打包者。

随着编译器选项"module": "umd",这gulpfile.js将做休息:

var gulp = require('gulp'); 
var ts = require('gulp-typescript'); 
var browserify = require('gulp-browserify'); 

gulp.task('default', function() { 
    return gulp.src('src/*.ts') 
    .pipe(ts.createProject('tsconfig.json')()) 
    .pipe(browserify()) 
    .pipe(gulp.dest('dist/gen')); 
}); 

gulp.task('watch', ['default'], function() { 
    gulp.watch('src/*.ts', ['default']); 
}); 
相关问题