2016-04-16 37 views
7
'da

için VisualScript Koduna göre bunu karşılaştırmak yapmanız gereken tek şey, kaynak haritalarına izin vermektir ve VSCode, TypeScript'te hata ayıklayacaktır ancak WebStorm'da aynı şeyi başaramam.Sunucu tarafında nasıl hata ayıklama WebStorm

Kolayca WebStorm sunucu tarafı JavaScript hata ayıklama ancak başkasının WebStorm/IDEA ayıklama typescript ile güreş için

+1

Hangi WebStorm sürümünü kullanıyorsunuz? Kaynak haritalarınız var mı? Imageboard örnek projesinde hata ayıklama (https://github.com/Microsoft/TypeScriptSamples/tree/master/imageboard) benim için iyi çalışıyor: server.js dosyası için bir Node.js hata ayıklama oturumu ve sunucuya yerleştirilen kesme noktaları başlatıyorum .ts vuruldu. –

+0

En son "2016.1" sürümünü kullanıyorum. Bunu deneyeceğim. Yani tüm yaptığınız ts dosyalarınızı derlemek ve yeni bir hata ayıklama oturumu başlatmak, sonra WebStorm otomatik olarak ts dosyaları kesme noktaları seçecek? –

+0

Evet, kodu derlemek ve kaynak haritaları oluşturmak için yerleşik bir WebStorm TypeScript derleyicisi kullanıyorum. Kesintiler TS dosyasında ayarlanır, WebStorm'un kaynak kodları üzerinde durabilir. Uygulamanızda hata ayıklama konusunda hala sorun yaşıyorsanız, lütfen https://youtrack.jetbrains.com/issues/WEB –

cevap

5

typescript, ben de benzer duyguları OP ile (muhtemelen farklı bir nedenden dolayı) vardı. Sorunum, çalışma dizini, düğüm çalıştırma yapılandırmasında dist klasörüne ayarlamadım. Jest'te testler yürütüyorum ve çalışma direncinin projemin kökeni olması gerektiğini düşündüm. dist'a ayarlayın ve hata ayıklama çalışmaya başladı! 2.0.3

Dosya tsconfig.json:

{ 
    "compilerOptions": { 
    "jsx": "react", 
    "module": "commonjs", 
    "noImplicitAny": false, 
    "outDir": "dist", 
    "preserveConstEnums": true, 
    "removeComments": true, 
    "sourceMap": true, 
    "target": "es6", 
    "moduleResolution": "node" 
    }, 
    "exclude": [ 
    "node_modules", 
    "dist" 
    ] 
} 

Jest yapılandırma (package.json olarak)

ayrıntılı bilgi ...

Kaynak src

typescript sürümünde Ts dosyaları:

"jest": { 
    "scriptPreprocessor": "<rootDir>/node_modules/ts-jest/dist/preprocessor.js", 
    "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx)$", 
    "moduleFileExtensions": [ 
     "ts", 
     "tsx", 
     "js" 
    ] 
    } 
Çalıştır yapılandırma

...

Çalışma dizini: <project_root>/dist

JavaScript dosyası: ../node_modules/jest-cli/bin/jest.js

Uygulama parametreleri: --runInBand

yardımcı olur Umut! WebStorm çalışan için

+0

[edited] Kök dizinde bile çalışıyor gibi görünüyor, benim için çalışmasını neyin 'nod' çalıştırması değil 'nod' komutunu kullanıyordu. – Mc128k

0

typescript kaynaklarının etrafında (2017/02/03) ayıklayıcı yaptım:

  1. Kurulum Node.js yapılandırma:
    • Çalışma dizini: root/of/the/project
    • JavaScript dosyasını (benim package.json bulunduğu yerde): dist/index.js
  2. TypeScript'i gulp-typescript ile derledim, ancak daha önemlisi kaynak-harita dosyaları. Aşağıdaki gibi bir görevi kullanılmıştır derleme Yani: './app' klasöründe, ./dist klasöründe bulunan tüm derlenmiş dosyalar bulunan

    const gulp = require('gulp'); 
    const ts = require('gulp-typescript'); 
    const sourcemaps = require('gulp-sourcemaps'); 
    const merge = require('merge2'); 
    
    const tsProject = ts.createProject('tsconfig.json', { 
        declaration: true, 
        typescript: require('typescript'), 
    }); 
    
    gulp.task('default',() => { 
        const result = gulp.src('./app/**/*.ts') 
        .pipe(sourcemaps.init()) 
        .pipe(sourcemaps.identityMap()) // optional 
        .pipe(tsProject()); 
    
        return merge([ 
    result.js 
         .pipe(sourcemaps.write('.', { includeContent: false, sourceRoot: '../app' })) 
         .pipe(gulp.dest('dist')), 
        result.dts 
         .pipe(gulp.dest('dist')), 
        ]); 
    }); 
    

Tüm kaynak TS dosyaları. En önemli kaynak dosyaları seçeneği sourceRoot, yanlış değer sizi ts dosyasına getirmiyor.

Gönderen sourcemaps.write('.', { includeContent: false, sourceRoot: '../app' } dosyalarımı .js dosyalarının yanında yazıyor ve app klasörüne başvuruyor. Zaten orada (app klasörü) olduğundan .map dosyalarında içeriğe ihtiyacım yok.

@Ekaterina'ya teşekkürler Düğümler ile Düğüm hatalarını çalıştırmayı başardım.

İlgili konular