2016-12-03 147 views
1

忽略我有一個tsconfig.json文件在我的項目的根目錄:tsconfig.json通過Visual Studio代碼

{ 
    "compilerOptions": { 
    "target": "ES5", 
    "module": "commonjs", 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "sourceMap": true, 
    "noEmitHelpers": true, 
    "baseUrl": ".", 
    "paths": { 
     "services/*": ["./src/app/shared/services/*"] 
    } 
    }, 
    "compileOnSave": false, 
    "buildOnSave": false, 
    "awesomeTypescriptLoaderOptions": { 
    "forkChecker": true, 
    "useWebpackText": true 
    } 
} 

我試圖定義我的路徑,所以我們並不需要在項目中使用相對路徑。

例如:

我想,而不必鍵入獲得import { ConfigService } from 'services/config';工作,:

import { ConfigService } from '../../shared/services/config/';

,但我不斷收到中的WebPack錯誤,當我試試這個。

enter image description here

看起來它只是試圖在/node_nodules看,而忽略tsconfig.json?我對嗎?

我真的不知道我在做什麼錯。 Google搜尋了兩個多小時並且瘋了。

任何幫助,將不勝感激。

回答

2

注意事項:事實上,你是對的,Webpack不知道tsconfig文件,並嘗試以自己的方式解決模塊。爲了在tsconfig中使用它,你需要一個TsConfigPathsPlugin插件。請參閱github上的issue

我認爲你的路徑屬性設置不正確。你需要告訴打字機是這樣的:

對於匹配模式「services /」的導入,將以下路徑追加到 導入中(假設您的根目錄是src之前的目錄)「/ src/app/shared /」

"paths": { 
    "services/*": ["/src/app/shared/*"] 
} 

所以,當編譯器得到你的‘服務/配置’進口,這將匹配的模式,然後創建這個路徑‘根/ src目錄/應用/共享/服務/配置’,試圖解決它。

有關更多詳細信息,請參閱打印稿module resolution文檔。

+1

你完全正確,我在'webpack.config.js'中定義了'TsConfigPathsPlugin'插件並設置了'tsconfig.json',所有東西都開始工作了! –

相關問題