2016-10-31 40 views
7

Angular2 projemizde, tüm model ts dosyalarını belirli bir klasöre koyarız:/app/common/model/*. Onları akraba yollarım ile bileşenlerimde arayabilirim, ama çok zahmetli. Yani 2 çözüm, en iyi özel yol: StackOverflow: Relative Paths for SystemJS & ES module imports. Ancak IDE'm yol bulamıyor. import { Address } from 'mymodel/address.model';Angular2 import mutlak yolu veya özel yol (typescript 2)

IDE: Benim bileşeninde

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": true, 
    "suppressImplicitAnyIndexErrors": true, 
    "outDir": "built", 
    "baseUrl": ".", 
    "paths": { 
     "mymodel/*": [ 
     "app/common/model/*" 
     ] 
    } 
    } 
} 

: [ts] senle ya yoldaki * olmadan denedik .... modül bulamıyor

İkinci çözüm İşte benim tsconfig geçerli: Stackoverflow: Angular 2, imports between different folders

IDE ve derleme bileşende tam yolu ile, ok gibidir: import { Address } from 'common/model/address.model';

Ve tsconfig:

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": true, 
    "suppressImplicitAnyIndexErrors": true, 
    "outDir": "built", 
    "baseUrl": ".", 
    "paths": { 
     "*": [ 
     "app/*", 
     "node_modules/*" 
     ] 
    } 
    } 
} 

Ama biz tüm modeller için sayfa yüklemesinde 404 var. Belki de systemjs dosyasında bir yapılandırma var mı?

Her iki durumda da, "outdir" parametresinin sorun olduğunu düşünüyorum ve bir şeyleri özlüyoruz.

Yardımlarınız için çok teşekkürler!

Selamlar,

typescript: 2.0.6 Açısal: 2.0.0

+0

Hangi IDE'yi kullanıyorsunuz? Benimkilerde (IntelliJ/Webstorm) neredeyse hiçbir zaman bir ithalat yapmıyorum: IDE bunu benim için ekler. –

+0

Visual Studio Kodu. Seninkinde mutlak yol mu? – lginlap

+0

İlk çözüm, diğer IDE ile harika çalışıyor ... Üzgünüm, bu sahte bir problem – lginlap

cevap

2

internet üzerinden arama n ne tam olarak sorun ve farklı giderme seçeneğini denedikten anlamaya çalışarak mücadele sonra ben baseURL bilmek geldi ve Yol birlikte nasıl

Not çalışır: Bu çözüm Açısal Cli 1.x içindir. Diğer araç hakkında emin olmadığından, baseUrl: "kullanırsanız,

. o VScode çalışır gibi aşağıda ama

{ 
    "compileOnSave": false, 
    "compilerOptions": { 
    "outDir": "./dist/out-tsc", 
    "baseUrl": ".", 
    "paths": { 
     "@myproject/*": ["src/app/*"] 
    }  
} 

Bildiğim kadarıyla benim anlayış ve benim çalışma uygulaması ve açısal AIO kodunda işaretli derleme değilken, ben baseURL olarak kullanılmasını önermek: "" src

altında gibi
{ 
    "compileOnSave": false, 
    "compilerOptions": { 
    "outDir": "./dist/out-tsc", 
    "baseUrl": "src", 
    "paths": { 
     "@myproject/*": ["app/*"], 
     "testing/*": ["testing/*"] 
    }  
} 

Kaynak olarak temel URL'ye (src dizini) sahip olarak, derleyici modülleri düzgün şekilde çözer.

Umarım bu, insanların bu tür sorunları çözmelerine yardımcı olur.