TypeScriptプロジェクトの慣用的なディレクトリ構造は何ですか?
このような構造に次の機能が必要です。
間違っていたようです。私は次の構造を試していました:
src
|---- lib
|-----|---- mymodule.ts
|---- tests
|-----|---- mymodule.tests.ts
ただし、lib
の下のテストコードとは別に、tests
ディレクトリの下のソースコードをコンパイルしようとしました。
find src/lib -name *.ts | xargs tsc --declaration --sourceMap --module commonjs --target es5 --listFiles --outDir lib
そして、テストコード:
find src/tests -name *.ts | xargs tsc --declaration --sourceMap --module commonjs --target es5 --listFiles --outDir tests
これにより、tests
フォルダに別のlib
サブディレクトリとtests
サブディレクトリが作成されました。これは私が意図したものではありませんでした。
私の問題を解決するために、それらを一緒にコンパイルする必要があったので、私のコマンドは次のとおりです。
find src -name *.ts | xargs tsc --declaration --sourceMap --module commonjs --target es5 --listFiles --outDir .
助けてくれてありがとう。
単一ファイルの出力を生成することをお勧めします。ブラウザであろうとNodeであろうと、それはまさにより良いアイデアです。ほとんどのIDEでは_.gitignore
_ dファイルを非表示にできるため、_.js
_ファイルを適切に配置しても、整頓されたファイルペインshould n'tを達成するのは問題です。 _.ts
_ファイルの隣。
can技術的に _--outDir
_ を使用して、_tsconfig.json
_を適切に設定することにより、希望する方法を出力します。
これはかなり簡単です! _/tests
_を維持するだけです。インポートは、単に_import {MyClass} from "../src/modules/my-class"
_(_../
_が_/tests
_から抜け出すために)のようなディレクトリトラバーサルによって機能します。
これは、ブラウザではNode — TypeScriptのデフォルトでrequire
sを使用している場合よりも困難です。
webpack
のようなものを使用することを強くお勧めしますが、危険な側面での生活を主張する場合は、ビルドプロセスを設定せずにTypeScriptコードをすばやく反復するために使用するブラウザーフレンドリーな要件があります。
動作するWebインポートには絶対パスが必要なため、TypeScriptでrequire()
ハックを使用する方法を次に示します(通常、再構築を必要としない高速デバッグセッション用)。
_/entities/user.ts
_
_import {Username} from "../entities/username";
import {Password} from "../entities/password";
export class User {
username: Username;
password: Password;
}
_
Username
とPassword
は、それぞれ_/entities/username.ts
_と_/entities/password.ts
_のexport
edクラスです。
_../entities/
_は無関係に見えるかもしれませんが、ブラウザがUsername
およびPassword
エンティティへの適切な絶対パスを持つことが不可欠であることに注意してください。 :)
これはプロジェクトのサイズ、ツール、プラットフォームなどに大きく依存するため、具体的なアドバイスをすることは非常に困難です。