2016-06-12 41 views
7

Webpack ile Typescript ve React kullanarak çalışan basit bir demo uygulamasına sahip olmaya çalışıyorum. WebPack çalıştırırken ben eklemek çalıştığınızda bir sunucudan veri almak için whatgw getirme, bu hatayı alıyorum:Typescript/whatwg-fetch/webpack ile hata

error TS2307: Cannot find module 'whatwg-fetch' 

hata alma satırında: Ben UÖM'sini taktınız

import * as Fetch from 'whatwg-fetch' 

bağımlılık ve typescript için yazarak

npm install --save whatwg-fetch 
typings install --global --save dt~whatwg-fetch 

Benim webpack yapılandırması:

var HtmlWebpackPlugin = require('html-webpack-plugin'); 
var HTMLWebpackPluginConfig = new HtmlWebpackPlugin({ 
    template: __dirname + '/app/index.html', 
    filename: 'index.html', 
    inject: 'body' 
}); 
var path = require('path'); 
module.exports = { 
    entry: [ 
     path.resolve(__dirname, 'app/index.tsx') 
    ], 
    output: { 
     path: __dirname + '/dist', 
     filename: "index_bundle.js" 
    }, 
    resolve: { 
     // Add `.ts` and `.tsx` as a resolvable extension. 
     extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js'] 
    }, 
    module: { 
     loaders: [ 
      {test: /\.tsx$/, exclude: /node_modules/, loader: "ts-loader"} 
     ] 
    }, 
    plugins: [HTMLWebpackPluginConfig] 
}; 

IDE (IntelliJ IDEA) öğesinde herhangi bir hata görmüyorum ve içe aktarma işlemini gerçekten orada olmayan bir modüle değiştirirsem farklı bir hata alıyorum (Module not found: Error: Cannot resolve module 'whatwg-fetcha' in C:\dev\[...]) ve IDE'm içe aktarmanın geçerli değil.

eşdeğer ayarıyla ince temel Tepki işleri için ithalat:

npm install --save react 
typings install --global --save dt~react 
import * as React from 'react' 

Eksik bir şey?

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

cevap

20

Daha fazla araştırma yaptıktan sonra (ve aslında soruyu yazarken), bu kullanım durumunda whatwg-getirme için yazmanın olduğu gibi görünüyor: Import a module for side-effects only (sitede açıklandığı gibi: Uygulama önerilmese de, bazı modüller biraz diğer modüllerle tarafından kullanılabilir küresel devleti. Bu modüller herhangi ihracatını sahip olmayabilir veya tüketici kendi ihracat hiçbirinde ilgilenmez.)

Yani yerine

import * as Fetch from 'whatwg-fetch' 

Ben

kullanılan
import 'whatwg-fetch' 

Ve daha fazla hata alamıyorum ve bileşenimdeki getirme işlevini kullanabilirim. Umarım bu bir başkasına yardım eder.

npm install --save @types/whatwg-fetch 
+0

selam, ben aynı çalıştı ama bana zamanında tanımlı değil getirme söyler: Kenara @Antoine çözeltisinden –

+0

github shim'i, henüz desteklemeyen tarayıcılar için çok doldurmak için kullanmanız gerekiyor: https://github.com/github/fetch @SalmanHasratKhan – BentOnCoding

+0

Sadece dikkatle yazı dizini kullanıyorsunuz ve "Promise tanımlanmadı" "hatalar, tsconfig dosyasındaki hedefinizin" es6 "veya üstü olduğundan emin olun. – user31208

0

, ben de o iş yapmak projeme @types/whatwg-fetch eklemek gerekiyordu. herhangi bir çözüm?