typescriptファイルを複数のoutFileにグループ化することはできますか?私はまだTypescriptをバンドルしたいが、一つのJSファイルにはバンドルしたくない。TSをいくつかのJSファイルにグループ化したい。 controllers.js、plugins.js。 TypeScriptプロジェクトオプションは、outfileオプションを1つしか提供していないようです。typescriptファイルを複数のoutFileにグループ化する
4
A
答えて
0
残念ながら、これはデフォルトのTypeScriptコンパイラの動作ではありません。私はTypeScriptアプリケーションをモジュール化しようとしたとき、この問題に直面しました。再び古き良き_references.tsファイルを使用して
- スタート:
私はその問題のために使用することを決定したソリューション。
- TSCを使用してバンドルしないでください(JavaScriptにコンパイルするだけです)。
- Gulpプラグイン/関数を使用して_references.tsファイルを解析します。私の考え:
var fs = require('fs');
// Consts
var PLUGIN_NAME = 'reference-parser';
// Plugin level function (dealing with files)
function referenceParser(fileName, prefix, filterParentReferences) {
var references = [];
var content = fs.readFileSync(fileName, 'utf8');
content = content.replace(/\/\/\/ <reference path=("|')/g, prefix);
content = content.replace(/.ts("|')\s*\/>,?/g, '.js');
function readLines(input) {
if (input.length === 0)
return;
var newLineIndex = input.indexOf('\r\n');
if (newLineIndex >= 0) {
var line = input.substring(0, newLineIndex).trim();
readLine(line);
if (input.length > (newLineIndex + 2))
readLines(input.substring(newLineIndex + 2));
} else {
readLine(input);
}
}
function readLine(line) {
if (line && line.length > 0) {
//console.log('Line: ' + line);
if (line.startsWith('//')) {
//console.log('Comment line, ignored.');
} else if (line.indexOf('_references.ts') >= 0) {
//console.log('External reference line, ignored.'); // TODO Support this?
} else if (filterParentReferences && line.startsWith('../')) {
//console.log('Parent reference, ignored.');
} else {
references.push(line);
}
}
}
readLines(content);
return references;
}
// Exporting the plugin main function
module.exports = referenceParser;
B。ガルプタスクのすべてを連結します。
//...
// Get module source files by parsing the module's _references.ts file.
var sourceFiles = referenceParser(sourceRoot + '_references.ts', buildJsRoot, true);
// console.log(sourceFiles);
var sourcesStream = gulp
.src(sourceFiles)
.pipe(plugins.sourcemaps.init({ loadMaps: true })) // Load TypeScript generated source maps
.pipe(plugins.concat(module.name + '.Bundle.js'))
.pipe(plugins.uglify({ mangle: false })) // Minify the resulting bundle
.pipe(plugins.sourcemaps.write('.')) // Write the (merged) bundle source maps
.pipe(gulp.dest(destinationRoot));
moduleGulpStreams.add(sourcesStream); // Add the source stream to the stream merger
//...
+0
応答に時間を割いてくれてありがとう。うん、私は1つのjsにコンパイルしないことを考えていましたし、ポストコンパイルイベントを使ってさまざまなフォルダにxcopyしてからバッチして縮小してみました。 – MarzSocks
関連する問題
- 1. 複数のiOSアプリケーションをグループ化する
- 2. 複数のラジオボタンリストをグループ化する
- 3. linqを使用して複数のグループにグループ化する
- 4. のMySQL:複数のグループ化
- 5. 複数のグループ化、LINQの
- 6. ヘルプでグループ化する(複数でグループ化する、重複する)
- 7. matlab:複数のグループに属する観測値のグループ化
- 8. ggplot複数のグループ化バー
- 9. 複数列のグループ化は、
- 10. 複数行のSQLグループ化
- 11. Linq - 複数のテーブルを複数のリターンでグループ化する
- 12. 複数ファイルにまたがるTypescriptネームスペース
- 13. 複数のグループをグループ化するSQLクエリ
- 14. Oracle SQL、複数のグループをグループ化して表現する
- 15. 複数のCSSクラスを別のクラスにグループ化する
- 16. 複数の列を1つの条件にグループ化する
- 17. 1つのレコードに複数のレコードをグループ化する
- 18. 複数のファイルに名前空間を指定するTypeScriptモジュール
- 19. 複数のキーにデータセットをグループ化する方法は?
- 20. Datetimesを使用して複数の列にグループ化する
- 21. 複数行の項目を1行にグループ化する
- 22. SSRSで複数のレポートを1つにグループ化する
- 23. グループごとに複数のボックス・プロットをレイヤー化する
- 24. 複数の列を月ごとにグループ化する
- 25. XSLT:Muenchianの複数のグループ化の苦境
- 26. 単一のICSファイル内で複数のイベントをグループ化する(icalendarストリーム)
- 27. パンダ - 複数の変数をグループ化してアンスタックする方法
- 28. LINQでの複数レベルのグループ化?
- 29. jqGridの複数レベルのグループ化
- 30. iReportsグループ化のバグ - 複数の発生?
あなたはガルプや兵卒のようなビルドツールでこれを行うことができるかもしれないが、あなたは持っていない限り、あなたが複数の 'outFile'sを持つことはできませんグループごとに異なる 'tsconfig' – Quill