2017-03-21 6 views
1

私は3つのサブドメインからなるプロジェクトを作っています。すべてが独自のwebpack設定、独自のIDE(PhpStorm)プロジェクトなどを持っています。 サブドメインごとに共通のtypescriptスクリプトがあります(自分自身ではなくnode_modules)。一般的なスクリプトを使ったWebpack/Typescript

私のコードを3回コピーしたくないです - 私は1つのソースを使いたいと思います。 そのための最良の方法は何ですか? npmを使用してすべてのスクリプトを公開する必要がありますか?私はそれを望んでいない。

正しいファイルimport {Mapa} from "../../../../www/assets/js/mapa/Mapa";を指しているスクリプトをインポートすると、動作しますが、非常に醜いです。

編集: 私はtsconfigという方法で運がないとしています。私はモジュールが見つからない取得import {ExampleTest} from "Example/src/index";のようなファイルをインポートする場合

{ 
    "compilerOptions": { 
    "module": "commonjs", 
    "target": "es5", 
    "sourceMap": true, 
    "allowJs": true, 
    "typeRoots": [ 
     "node_modules/@types" 
    ], 
    "baseUrl": ".", 
    "paths": { 
     "*": [ 
     "C:\\strony\\www\\libsJs\\*" 
     ] 
    } 
    }, 
    "exclude": [ 
    "node_modules" 
    ] 
} 

: はここに私のTSconfigのファイルです。しかし、私はimport {ExampleTest} from "../../../../../libsJs/Example/src/index";にすべての作品に切り替えると... 何が問題になることができますか?

答えて

0

ローカルパスはNPM依存関係(docs)として使用できます。
シンボルリンクを作成して、各サブプロジェクトに共有フォルダを追加して、コピーされたかのように表示することができます。

EDIT
これは、import文をきれいにするために、各サブプロジェクトのtsconfig.jsonrootDirspathsを使用することも可能です。

+0

アンサーに感謝します。私は 'tsconfig'で戦っています。上記の編集をご覧ください。 – piernik

+0

@piernik、私はあなたの例で何か問題を見ることができません、 '' baseUrl "'と '' paths "'の組み合わせがうまくいくはずです。 'tsc --traceResolution'を使ってコンパイルしようとすると、あなたのケースで' C:\ strony \ www \ libsJs \ Example \ src \ index.ts'ファイルに解決できない理由が正確に表示されます。 – eur00t

関連する問題