2017-10-09 16 views
0

私はフロントエンドとしてAngular4を使用し、バックエンドとしてTypescriptで書かれたNodeJSを使用するプロジェクトに取り組んでいます。Typescriptプロジェクトで共有ソースを使用する最も良い方法は?

私は両側(DTOのよ​​うなもの)の間にいくつかのTSソースを使いたいのですが、私はそれをどのようにして最善の方法で処理するのか分かりません。彼らはいくつかの外部依存関係を使用します。

私には3つのフォルダがあります:client /、server/and common /。

  • 一般的なフォルダ(共通のtsソースを含む)には独自のpackage.jsonが必要ですか?
  • コンパイルされた.jsファイルはどこにありますか?共通/ dest /?もしそうなら、アプリケーション(クライアント+サーバ)を実行するときにインポートがうまくいくでしょうか?

私の角型アプリのために、自分のノードのタイプスクリプトソースをコンパイルして、角度付きで(npm startで)使用しています。

答えて

1

これを処理する最良の方法は、共通コードをパッケージのように扱うことです(文字通りバージョンを変更することができます。つまり、非公開のNPMフィードで扱うこともできます)。

NPMパッケージを作成していない場合でも、ほとんどの手順に従って、できるだけ簡単に使用できます。

  1. 定義と共通のコードは(--declaration)に切り替えコンパイルコンパイル
  2. UMDモジュールを使用するため、同じモジュールは、ノード上で動作し、ブラウザでコピー.js.d.tsファイルあなたが必要な場所へそれらを消費する

"フルパッケージ"になったら、パッケージ化する配布フォルダにファイルをコピーするための3番目の手順を変更します。

一般的な考え方は、TypeScriptファイルの単一の「真実のソース」を維持することです。コードをコピーしてJavaScriptと型定義を取得するだけです。

0

あなたが "./index.ts"

package.json

{ 
    //... 
    "main": "./build/index.js", 
    "typings": "./build/index" 
} 

tsconfig.json

{ 
    "compilerOptions": { 
     //... 
     "declaration": true, 
     "sourceMap": true, 
     "outDir": "./build" 
    }, 
    "exclude": [ 
     "node_modules", 
     "build" 
    ] 
} 

GitHubのようにコードをプッシュであなたのライブラリーをエクスポートするパッケージを作成し、 npmを使用してインストールしてください。npm install github:[username]/[repository]#[master/tag]

たとえばhttps://github.com/tfso/njs-tfso-repositoryはタイプクリップライブラリのnpmパッケージです。リリースタグにはトランジル化されたjavascriptが含まれています(githubソースにはjavascriptは含まれていません)。これは、次のように入力してインストールできます。npm install tfso/njs-tfso-repository#1.2.98

関連する問題