次の階層があります。
dist/
|- BuildTasks/
|- CustomTask/
- CustomTask.js
node_modules/
source/
|- BuildTasks/
|- CustomTask/
- CustomTask.ts
- tsconfig.json
さらに、内部 (プライベート) 使用のために VSTS タスク拡張機能を作成しようとしています。もともと、ルート ディレクトリに tsconfig.json があり、すべてがローカル マシンで問題なく動作していました。問題は、VSTS 拡張機能では、すべてのファイルをタスク フォルダー自体と同じディレクトリに含める必要があることです。詳細については、 https ://github.com/Microsoft/vsts-task-lib/issues/274 を参照してください。
自己完結型のタスク フォルダーを公開する必要があります。エージェントは依存関係を復元するために npm install を実行しません。
もともと、node_modules ディレクトリ全体を各 Task フォルダー (この場合は、JS ファイルを含むCustomTaskフォルダー) にコピーする手順を含めることで、この問題を解決していました。しかし、私が書いているすべてのタスクが同じモジュール要件を持っているわけではないことを考えると、これは少し多すぎるように思えます。
私の考えは、すべての依存モジュールを含む単一の出力ファイルを作成するように指定する各タスクフォルダーに tsconfig.json を作成することでしたが、残念ながら機能していません:
{
"compilerOptions": {
"baseUrl": ".",
"target": "ES6",
"module": "system",
"strict": true,
"rootDir": ".",
"outFile": "../../../dist/BuildTasks/CustomTask/CustomTask.js",
"paths": {
"*" : ["../../../node_modules/*"]
}
}
}
「パス」を追加する前に、次のエラーが発生していました。
エラー TS2307: モジュール 'vsts-task-lib/task' が見つかりません。
エラー TS2307: モジュール '瞬間' が見つかりません。
パスを追加した後も、node_modules ディレクトリにあるモジュール 'moment' が見つからないというエラーが表示されます。また、出力 JS を見ると、必要な「vsts-tasks-lib」コードが含まれていないように見えます。おそらく「moment」モジュールに関してまだエラーがあったためでしょうか? 何を見逃したかわからない?