2016-05-27 27 views
13

Projemi oluşturmak için angular2 quick start izledi ve her şey gayet iyi çalışıyor ama benim "TSC -w" komut satırı bana devam ediyor: Oradaangular2: modülünü bulamıyor '@ açısal/çekirdek'

app/components/company/company.ts(1,36): error TS2307: Cannot find module '@angular/core'. 
app/components/company/company.ts(5,22): error TS2307: Cannot find module '@angular/router'. 
app/components/mission/mission.ts(1,36): error TS2307: Cannot find module '@angular/core'. 
app/components/mission/mission.ts(3,22): error TS2307: Cannot find module '@angular/router'. 

Ve bunun gibi başka bir çizgi var. Ancak, her şey başarılı bir şekilde derlenmiş ve benim uygulama gayet iyi çalışıyor, ancak tüm bu uyarıların/hataların gerçek hatalar bir şeylerin ortasında kaybolması gibi oldukça can sıkıcı.

Angular2 rc1, TypeScript 1.8.10, WebStorm EAP kullanıyorum (WebStorm TypeScript derleme sistemini kullanmıyorum, "tsc -w" komut satırıyla açık bir terminale güveniyorum).

SO ile ilgili başka bir soruya baktım, ama gerçekten bana yardımcı olan hiçbir şey bulamadım. İşte Güncelleme

benim tsconfig.json dosyasıdır:

{ 
    "compilerOptions": { 
    "target": "es5", 
    "sourceMap": true, 
    "experimentalDecorators": true, 
    "emitDecoratorMetadata": true, 
    "module": "system", 
    "noImplicitAny": false, 
    "outDir": "js", 
    "rootDir": "app" 
    }, 
    "exclude": [ 
    "node_modules", 
    "typings/main", 
    "typings/main.d.ts" 
    ] 
} 
+0

Şey ... Görünüşe göre, bu dosya projemi oluşturduğumdan bu yana hızlı başlangıçta zaten değişti. Yazımda, sadece "es6-shim", "yasemin" ve "düğüm" var. Ancak şunu görüyorum ki, hızlı başlangıçta, "es6-shim", "core-js" ile değiştirilir, fakat benim sorunumun çözülmeyeceğini hissediyorum (yanlış mıyım?). Dahası, "Thierry Templier" tarafından önerilen çözüm işe yarıyor. Teşekkürler – ssougnez

cevap

16

Sen kullanmalıdır moduleResolution nitelik node için:

{ 
    "compilerOptions": { 
    "target": "es5", 
    "sourceMap": true, 
    "experimentalDecorators": true, 
    "emitDecoratorMetadata": true, 
    "module": "system", 
    "moduleResolution": "node", // <----- 
    "noImplicitAny": false, 
    "outDir": "js", 
    "rootDir": "app" 
    }, 
    "exclude": [ 
    "node_modules", 
    "typings/main", 
    "typings/main.d.ts" 
    ] 
} 
+0

Gerçekten daha iyi görünüyor. Bana iki kelimede ne değiştiğini açıklar mısın? – ssougnez

+1

Derleyicinin kütüphaneler sözleşmeleri için 'd.ts' dosyalarını bulmasının yolu budur. Bu soruya bakın: http://stackoverflow.com/questions/37413533/what-is-the-purpose-of-tsconfig-json/37413595#37413595. –

+9

Bir şekilde editörüm hala 'src /' tsconfig dosyasında olsa bile '' Açısal/Çekirdek '' modülünü bulamıyor. – PascalVKooten

4

Sen küresel en typings eklemeniz gerektiğini aşağıdaki gibi seviye. Daha sonra aşağıdaki komutu kullanarak typings.json dosyasını oluşturun.

{ 
    "name": "ng2-application", 
    "globalDependencies": { 
    "core-js": "registry:dt/core-js#0.0.0+20160725163759", 
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255", 
    "node": "registry:dt/node#6.0.0+20160909174046" 
    } 
} 

Şimdi

"compilerOptions": { 
     "moduleResolution": "node" 
     } 

üzerinde tanımlarını mümkün olsun edecek adımlar yukarıda yaptıktan sonra tsconfig.json kod aşağıda eklemeniz gerekir typings.json kod aşağıda

typings init 

Yapıştır F12.