2017-07-03 41 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']); 
}); 
相關問題