2017-03-24 61 views
14

redux bulamıyor: yüklü rağmentypescript aşağıdaki hatayı alıyorum

node_modules/@types/react-redux/index.d.ts(8,24): error TS2307: Cannot find module 'redux'. 

hem react-redux ve redux (package.json):

"dependencies": { 
    "react": "15.4.2", 
    "react-native": "0.42.3", 
    "react-redux": "^5.0.3", 
    "redux": "^3.6.0" 
}, 
"devDependencies": { 
    "@types/react": "^15.0.18", 
    "@types/react-native": "^0.42.9", 
    "@types/react-redux": "^4.4.38", 
    "@types/redux": "^3.6.0", 
    "babel-jest": "19.0.0", 
    "babel-preset-react-native": "1.9.1", 
    "jest": "19.0.2", 
    "react-test-renderer": "15.4.2", 
    "tslint": "^4.5.1", 
    "typescript": "^2.2.1" 
}, 

@types/redux yılında README.md dosya diyor ki:

This is a stub types definition for Redux (https://github.com/reactjs/redux). 
Redux provides its own type definitions, so you don't need @types/redux installed! 

ama un @types/redux paketinin yüklenmesi hiçbir fark yaratmaz.

Herhangi bir fikrin var mı?

GÜNCELLEME Ben (sadece export * from ../../redux/index içeren) @types/redux dizinine bir index.d.ts ekleyerek, sorunu, ancak hiçbir sevinç çözmek düşündüm

.

{ 
    "compilerOptions": { 
     "target": "es2015", 
     "module": "es2015", 
     "jsx": "react", 
     "outDir": "build", 
     "rootDir": "src", 
     "allowSyntheticDefaultImports": true, 
     "noImplicitAny": true, 
     "experimentalDecorators": true, 
     "preserveConstEnums": true, 
     "allowJs": true, 
     "sourceMap": true 
    }, 
    "filesGlob": [ 
     "src/**/*.ts", 
     "src/**/*.tsx" 
    ], 
    "exclude": [ 
     "__tests__", 
     "index.android.js", 
     "index.ios.js", 
     "build", 
     "node_modules" 
    ], 
    "compileOnSave": false 
} 

ve kesinlikle node_modules den @types/redux dizini silindi:

İşte benim tsconfig.json olduğunu. Ben (belli ki) TypeScript 2.2.1'i çalıştırıyorum. redux kullanarak

GÜNCELLEME 2

Kodu: "redux" sonra noktalı virgül ekleyerek yardımcı olmadığını

import { combineReducers } from "redux" 

export default combineReducers({}) 

Not.

+0

Dokümantasyon Evet, '@ türleri/redux' olmadan çalışması gerekir. Aslında, '@ types/redux' yüklendiğimde sorun yaşadığımı düşünüyorum ... Redux'u içe aktardığınız bir kod parçasını verebilir misiniz? –

+0

Sadece emin olmak için, buraya tsconfig.jsonunuzu da koyun. –

+0

'import {createStore, Store, Reducer} 'redux' 'da bu sadece yazı tipinde düzgün çalışır 2.3.0-dev.20170320 –

cevap

31

Aynı sorunu yerel bir projede de yaşadım. Bu düzeltme benim için çalıştı: package.json dosyalarında bağlı tip tanımlarını içermek için derleyici seçeneklerine "moduleResolution": "node" eklemeniz gerekir. Burada https://www.typescriptlang.org/docs/handbook/module-resolution.html

+2

"Bugünlerde, bu strateji temel olarak geriye dönük uyumluluk için mevcut olduğunu düşündüklerinde, bunu düşündüğünüz için affedilirsiniz."Resmi belgelerinde," klasik "varsayılan değil ... Bu sadece bana çok acı verdi, teşekkürler –

+0

Bu benim de sorunumu çözdü FTFM" İki olası modül çözünürlük stratejileri vardır: Düğüm ve Klasik (...) Belirtilmemişse, varsayılan, Klasik - - AMD | Sistemi | Aksi halde ES2015 veya Düğüm. "Https://www.typescriptlang.org/docs/handbook/module-resolution.html – Tiago

5

@types/[email protected]'a döndüm ve bu sorun çözüldü. Bu sürüm redux için index.d.ts dosyasını içerir. Normal node_modules/redux dizinindeki index.d.ts dosyasını aramayan, ancak yalnızca node_module/@types'un altında olan TypeScript derleyicisiyle ilgili bir sorun olabilir.

+0

Bu problem gibi görünüyor. Benim için çalışıyor. –

İlgili konular