2017-03-21 67 views
1

我正在製作由3個子域組成的項目。每個人都有自己的webpack配置,自己的IDE(PhpStorm)項目等等。 對於每個子域我都有共同的typescript腳本(我自己的 - 不是node_modules)。Webpack/Typescript與我的腳本共同

我不想複製我的代碼三次 - 我想使用一個來源。 對此最好的解答是什麼?我應該使用npm發佈每個腳本嗎?我不想那樣。

如果我導入腳本指向正確的文件import {Mapa} from "../../../../www/assets/js/mapa/Mapa";它的作品,但看起來非常醜陋。

編輯: 我試着tsconfig方法沒有運氣。 這裏是我的tsconfig文件:

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

如果我導入文件中像import {ExampleTest} from "Example/src/index";我得到模塊沒有找到。但是,當我切換到import {ExampleTest} from "../../../../../libsJs/Example/src/index";所有作品... 什麼可以是問題?

回答

0

您可以使用本地路徑作爲NPM依賴關係(docs)。
或者您可以創建符號鏈接來將您的共享文件夾添加到您的每個子項目中,因此它會顯示爲被複制。

編輯
它也可以使用rootDirspaths在各子項目tsconfig.json,使導入語句漂亮。

+0

謝謝anwser - 我正在用'tsconfig'進行戰鬥。請參閱上面的編輯。 – piernik

+0

@piernik,我看不出你的例子有什麼問題,''baseUrl''和''paths''的組合應該可以工作。嘗試使用'tsc --traceResolution'進行編譯,它會正確顯示爲什麼它無法解析爲您的情況下'C:\ strony \ www \ libsJs \ Example \ src \ index.ts'文件。 – eur00t