2016-10-04 4 views
1

tl; dr

typescriptを別々のライブラリとしてコンパイルし、結果をノードモジュールのようにインポートできますか?例えばtypescriptプロジェクトをローカルモジュールとしてコンパイル


、私はその後、800個のファイル、およびいくつかのappフォルダ(app1app2、など)20個の+/-ファイルとそれぞれにcommonフォルダを持っています。 appフォルダのすべてには、commonフォルダ内のクラス/インターフェイス/ etcへの参照が含まれています。問題は、appフォルダをコンパイルするときには、すべてcommonのファイルをコンパイルするということです。このコンパイルには時間がかかり、実際にはそれを避けたいと思います。

commonapp1の両方でtsc --diagnostics --listFilesを使用してこれをテストして確認しました。

tsconfig.jsonexcludeプロパティを使用してcommonフォルダを無視しようとしましたが、効果がないようです。私はcompilerSettingsの中でbaseDirpathsなどの複数の設定を試みましたが、役に立たなかった。

noResolve私が探しているものをほぼ達成しているようですが、それは安全ですか?

個別にコンパイルして、独立したcommonプロジェクトを再コンパイルしないようにする方法はありますか?


テックスタック:

  • アンギュラ2.0.1
  • SystemJS 0.19.39
  • 活字体2.0.3
  • のWindows 8.1
  • ASP.NET MVC6

答えて

1

は、別のプロジェクトコールcommonにあなたの共通フォルダを分離し、Node.jsのモジュールにそれを作る、ここで命令:

https://docs.npmjs.com/getting-started/creating-node-modules

次に、あなたの元のプロジェクトでは、あなたは次のようにします。

方法1

npm link <folder path of common> 

方法2

commonへの更新が自動的にメインプロジェクトに反映され、更新を心配する必要がないので、方法1は使いやすくなります。

後でスタンドアロンのnpmパッケージとして公開する場合は、方法2が適しています。ただし、commonに更新するには、メインプロジェクトで手動で更新する必要があります。

commonフォルダには、.npmignoreファイルを作成してください。あなたのcommonプロジェクトは次のような構造を持っているとしましょう:

.                                        
├── index.d.ts 
├── index.js                                      
├── lib/ <--- compiled location                                
├── node_modules                                     
├── package.json                                     
├── src/                                       
├── tsconfig.json                                    
├── typings                                      
└── typings.json 

、あなたの.npmignoreは、次のようになります。

.DS_Store 
.git 
.gitignore 
examples 
node_modules 
npm-debug.log 
src 
tsconfig.json 
typings 
typings.json 

あなたは一例として、私のng2-simple-mqをチェックアウトすることができます。

+0

これが実際に私の問題を解決するかどうかはわかりません。私はすべてのことをうまく束ねることができます、それは単に非効率な方法でそれを行います。私はバニラTypescriptコンパイラが "プロジェクト"をローカルモジュールとしてコンパイルできるかどうかを見たいと思っています。 – JimmyBoh

+0

@JimmyBoh実際には簡単な方法があります。 –

+0

@JimmyBoh更新しました。 –

関連する問題