私は一連の VSTS 拡張機能に取り組んでいます。各拡張機能は、独自の小さな Node プロジェクトでpackage.json
あり、独自のnode_modules
フォルダーがあります。フォルダ構造は次のとおりです。
- MyExtension
- package.json // containing all dev-dependencies
- tslint.json
- Tasks
- tsconfig.json
- Common
- common.ts // containing functioanlity shared across tasks
- package.json // containing all runtime dependencies for all projects
- My1stTask
- package.json // containing all prod-dependencies
- task.ts // containing task implementation
- ...
- ...
- My6thTask
- package.json // containing all prod-dependencies
- task.ts // containing task implementation
VSTS ビルド タスクが機能する方法は、完全に自己完結型である必要があるということです。これまでのところ、Common
プロジェクトの内容を各タスクにコピーし、実行tsc
してすべてを JavaScript に変換することで、これを修正しました。
これは悪いことではありませんが、Common の内容を常にコピーして何かをテストする必要があります。
ローカル ファイル参照を使用してみました。各タスクの package.json に依存関係を追加しましたfile:../common
。これは開発時に機能しますが、拡張機能の生成後に共通モジュールがタスクの一部になることはありません。
私のバックグラウンドはノード開発ではなく、C# です。あちこち検索しましたが、vsts-extensions でうまく機能するソリューションが見つかりませんでした。
npm pack
拡張機能はすべてのファイルがそこにあることを期待しているため、機能していないようです。package.json/bundleDependencies
有望に見えますが、ローカルファイル参照をバンドルしていません。///<reference path="../common/common.ts"/>
編集にはうまく機能しますが、拡張機能をビルドした後も実行できません。- prepend を使用したプロジェクト参照は機能しません。ビルド タスクには commonjs モジュール リゾルバーが必要です。システムと AMD がモジュールをロードできません。Prepend は後者でのみ機能します。
これを「シームレス」に機能させる方法はありnode_modules
ますか?