2017-07-13 23 views
6

TypePoint kullanarak bir node.js uygulama geliştiriyorum.WebStorm tsconfig.json doğru dosyaları güncelleştirmiyor gibi görünüyor

Projemin kök klasöründe bir TypeScript dosyası oluşturdum. Ben tsconfig çalıştırın ve dist klasörünü güncelleştirmek için görünür. Ancak, uygulamayı çalıştırdığımda, bir fonksiyonun tanımlanmadığını belirten bir hata alıyorum. şeyler kafa karıştırıcı kısmı burası

: Aynı adlarla benim kaynak dosyaları ile aynı dizinleri benim src klasöründe .js ve .map dosyaların eski sürümlerini var gibi görünüyor. Bu .js dosya benim /dist klasöründe geçerli sürümlerinden farklı, gerekli işlevleri (sınıf yöntemleri) eksik dosyanın eski bir sürümü var gibi görünüyor.

Günün sonunda, /dist klasöründeki dosyalardaki hata ayıklayıcısını çalıştırmaya çalışıyorum ve /src TypeScript dosyalarında kesme noktaları belirlemeye çalışıyorum.

Bu benim /src klasöründe görüyorum dosya yapısının bir örneği (bu dosya değil akımdır js):

enter image description here İşte

benim /dist klasörün nerede dosya yapısının bir örneğidir transpiled js kodunun yer:

enter image description here Ayrıca

, burada projenin web uygulaması (dinlenme) bölümü için ayıklayıcı ayarları şunlardır:

enter image description here

Son olarak, burada tsconfig.json dosyasının bir örneği verilmiştir:

{ 
    "compilerOptions": { 
    "module": "commonjs", 
    "target": "ES5", 
    "moduleResolution": "node", 
    "experimentalDecorators": true, 
    "emitDecoratorMetadata": true, 
    "types": ["reflect-metadata"], 
    "lib": ["ES6"], 
    "sourceMap": true, 
    "inlineSources": true, 
    "pretty": true, 
    "outDir": "./dist", 
    "rootDir": "./src/", 
    "noLib": false 
    }, 
    "compileOnSave": true, 
    "include": [ 
    "src/**/*" 
    ], 
    "exclude": [ 
    "node_modules", 
    "node_modules/@types" 
    ] 
} 
    Yanlış js dosyalarını okumak neden yanlış olduğunu anlamak ister, yerine ediyorum
  1. /dist klasöründekiler?

  2. /dist klasörüne işaret etmek için bunu düzeltmek için ne yapabilirim. Kurduğum hata ayıklayıcı ayarları bunu yapardı, ancak durum böyle görünmüyor.

Güncelleme: Ben src klasöründe oluşturulan .js dosyaları silinmiş ve en sonunda klasöre geri döndü ve bir kez daha, diğer değişiklikleri yaptıktan sonra geçerli değildi. Bu dosyaları üreten şeyin ne olduğundan emin değilim; webstorm'da bir ayar mı yoksa tsconig.json'da mı?

Başka bir şey doğru görünmüyor.

"use strict"; 
Object.defineProperty(exports, "__esModule", { value: true }); 
//# sourceMappingURL=group.js.map 

Bu benim js transpiled kodunu görmek için bekliyordum gibi ben bekliyordum ne değildir: Ben dist klasördeki dosyalardan birini açtı, ben yerine JS kod aşağıdaki kodu bulundu.

+0

deneyebilirsiniz konfigürasyon dosyasında temizlenene? – lilezek

+0

Yapmıyorlar, ancak şimdi uygulamayı engelleyen "Modül bulamıyor" hataları alıyorum. başlangıçtan. Ayrıca,/dist klasöründeki .js dosyasının sonuna kaydırdığımda, aşağıdakileri görüyorum: // # sourceMappingURL = group.js.map. Bu yardımcı olur mu bilmiyorum. – user1790300

+0

Bu başka bir hatadır. "// # sourceMappingURL = group.js.map", sourcemaping'i etkinleştirmek için bir javascript dosyasının sonuna eklenmiş olan açıklamadır. – lilezek

cevap

1

Sen eklenmiyor içinde ve rootDir, her şeyde src bildiriyorlar rootDir göre beyan edilmelidir, ancak bu durumda büyük olasılıkla yine src her şeyi dahil ediyoruz beri içerir veya dışlayan gerekmez. compileOnSave seçeneği, sildiğiniz gibi dosyaları oluşturuyor, çünkü bir watcher bu şekilde ayarlanmış. Ayrıca, target ve lib javascript sürümlerini de karıştırıyorsunuz.

Zaten types özelliğini kullanıyorsanız açıkça @types dışlamak gerekmez

.

Tür belirtilirse, yalnızca listelenen paketler dahil edilir.

Burada yine görünüyor, sen src/`klasöründe` olanlar `.js` dosyaları silerseniz

{ 
    "compilerOptions": { 
    "module": "commonjs", 
    "target": "ES5", 
    "moduleResolution": "node", 
    "experimentalDecorators": true, 
    "emitDecoratorMetadata": true, 
    "types": ["reflect-metadata"], 
    "lib": ["ES5"], 
    "sourceMap": true, 
    "inlineSources": true, 
    "pretty": true, 
    "outDir": "dist", 
    "rootDir": "src", 
    "noLib": false 
    }, 
    "compileOnSave": false 
} 
İlgili konular