javascript - Behåll ursprungliga TypeScript-källkartor efter att ha använt Browserify
Bakgrund: Jag kompilerar 2 beroende TypeScript-filer till js, vilket också producerar källkartor (en källkarta per fil) med tsc 1.0
Jag använder -m commonjs och använder sedan browserify för att generera en enda bundle.js
Jag märkte dock att jag får de ursprungliga källkartsreferenserna två gånger i paketet, vilket inte verkar fungera.
Att skicka --debug verkar inte heller lösa problemet.
Jag hade en känsla av att detta problem: https://github.com/substack/node-browserify/issues/325 är på något sätt relaterat, men jag kunde inte lista ut hur problemet blev löst.
Också https://github.com/substack/browser-pack föreslogs, men jag förstår fortfarande inte helt hur man använder det, är det en ersättning för browserify?
Bottom line, jag skulle vilja slå ihop de 2 js-filerna men 'slå ihop' js till ts source maps med hjälp av browserify. Är det möjligt?
Svar #1
tsify är ett browserify-plugin som är bättre och ersätter t.ex. typescriptifier.
npm install tsify browserify watchifyDu använder tsify så här:
browserify src/index.ts -p tsify --debug -o build/index.jsObservera att detta stöder browserify --debug-omkopplaren, inga extra tricks behövs. Så du kan också använda det med watchify på detta sätt:
watchify src/index.ts -p tsify --debug -o build/index.jsSvar #2
Genom att använda minifyify-pluginet för Browserify tror jag att du kan använda TypeScript med Browserify och behålla källkartorna. Efter att ha kompilerat TypeScript-filerna bör du kunna skicka in "entry"-filen (den som importerar den andra via commonjs-syntax) genom Browserify med minifyify-pluginet.
var browserify = require('browserify'),
bundler = new browserify();
bundler.add('entry.js');
bundler.plugin('minifyify', {map: 'bundle.js.map'});
bundler.bundle({debug: true}, function (err, src, map) {
if (err) console.log(err);
fs.writeFileSync('bundle.js', src);
fs.writeFileSync('bundle.js.map', map);
});
