handbookのrootDirsを使用した仮想ディレクトリのセクションの最初の例では、別のソースフォルダから異なるrootDirs
をマージしてモジュールをインポートできます。typescriptハンドブック:rootDirsを持つ仮想ディレクトリ
// File Structure
src
└── views
└── view1.ts (imports './template1')
└── view2.ts
generated
└── templates
└── views
└── template1.ts (imports './view2')
// Setting
{
"compilerOptions": {
"rootDirs": [
"src/views",
"generated/templates/views"
]
}
}
モジュールをインポートするときに、あなたがrootDir
に記載されているパスを省略することができます注意してください。
私が理解していないことは、2番目の例です。
{
"compilerOptions": {
"rootDirs": [
"src/zh",
"src/de",
"src/#{locale}"
]
}
}
「コンパイラはツーリングの目的のために
'./zh/messages'
からメッセージをインポートする'./#{locale}/messages'
からインポートメッセージを解決します」。
- なぜですか?
#{locale}
は、建築プロセスでzh
と交換されていますか?./#{locale}/messages
で相対パスを使用するのはなぜですか?インポートファイルがsrc/folderA/
にある場合はどうなりますか?src/zh
がrootDirとしてマージされている場合、インポートするには/messages
にしてはいけませんか?
この例ではファイル構造が表示されないため、混乱しています。応答を楽しみにしています。ありがとう!
アップデート2017年12月21日
私は、フォルダ構造を推定しようとしている:
src
└── zh
└── messages
└── de
└── messages
└── app.ts (import messages from './#{locale}/messages')
第1の実施例によれば、これらすべてのrootDirs
が仮想dist
にコピーされますディレクトリに格納されており、相互に参照するようになっています。
dist
└── messages (zh, de got conflict here!)
└── app.ts
- 競合が発生するはずです。ではない?
感謝あなたの返事のために。 2番目の質問に関しては、私の記事の引用は誤解を招くものではないのですか?それは "コンパイラが解決する..."と書かれています – Moon
私の質問が更新され、 'rootDirs'設定が矛盾するはずであると考えました。説明するのを助けてもらえますかありがとう – Moon