2016-03-15 28 views
5

Tüm kitaplığım için tek bir .js ve .d dosyası oluşturmaya çalışıyorum. bu benim package.json geçerli:Ortak uygulamalar için .js ve .d dosyaları

{ 
    "compilerOptions": { 
     "module": "commonjs", 
     "target": "es6", 
     "noImplicitAny": false, 
     "outDir": "build", 
     "sourceMap": true, 
     "removeComments": true, 
     "watch": false, 
     "declaration": true, 
     "outFile": "file.js" 
    }, 
    "exclude": [ 
     "node_modules", 
     "build" 
    ] 
} 

ama tsc çalıştırdığınızda bu hatayı alıyorum: Yani

, bunu nasıl yapabilirim error TS6082: Only 'amd' and 'system' modules are supported alongside --outFile.?

cevap

2

Bu kavramsal bir şeydir. Commonjs modülleri, onları tek bir dosyada birleştiren bir anlam ifade etmeyecek şekilde çözülür. Ayrıntılar için typescript konularında Konuyu bakınız:

https://github.com/Microsoft/TypeScript/issues/7252

Eğer commonjs olarak kütüphanenizi oluşturmak varsa, elbette diğer tüm dosyalarını alır ve böylece ayrı tuşların altında parçalar ihraç bazı indeks dosyası sağlayabilir tüm lib ya da sadece bir kısmını alabilirsiniz.

+0

Tamam, bu .ts için mantıklı, ama .d? Yapar? – MuriloKunze

+0

Aynı nedenden dolayı. Tanımlama dosyalarını (* .d.ts) doğrudan tüm modüllerle hizalayarak, TypeScript derleyici modülünüzün tüketicisinin kullandığı tanımların tam olarak bölümlerini alabilir. Bölme nedenleri hakkında daha fazla bilgi için bu gönderiye bakın: https://medium.com/@mweststrate/how-to-create-strongly-typed-npm-modules-1e1bda23a7f4#.2xayimlpn –

+0

Üzgünüm, anlamadım bu. Neyi başarmak istiyorsun? Commonjs kullanmanın nedeni nedir? Düğümü veya tarayıcıyı hedefliyor musunuz? –

İlgili konular