2017-03-24 62 views
14

Tôi nhận được lỗi sau:nguyên cảo không thể tìm thấy Redux

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

mặc dù đã cài đặt cả hai react-reduxredux (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" 
}, 

File README.md trong @types/redux nói:

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! 

nhưng un cài đặt gói @types/redux không có sự khác biệt.

Bất kỳ ý tưởng nào?

CẬP NHẬT

Tôi nghĩ rằng bằng cách thêm một index.d.ts đến @types/redux thư mục (chỉ chứa export * from ../../redux/index), nó sẽ giải quyết vấn đề, nhưng không có niềm vui.

Đây là tôi tsconfig.json:

{ 
    "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 
} 

và tôi chắc chắn xóa các thư mục @types/redux từ node_modules. Tôi (rõ ràng) đang chạy TypeScript 2.2.1.

UPDATE 2

Mã sử ​​dụng redux:

import { combineReducers } from "redux" 

export default combineReducers({}) 

Lưu ý rằng việc thêm một dấu chấm phẩy sau "redux" không giúp.

+0

Có, nó sẽ hoạt động mà không có '@ types/redux'. Trên thực tế, tôi nghĩ rằng tôi đã có vấn đề, khi tôi đã cài đặt '@ types/redux' ... Bạn có thể cung cấp một đoạn mã mà bạn đang nhập vào redux không? –

+0

Chỉ cần chắc chắn, đặt ở đây tsconfig.json của bạn là tốt. –

+0

'import {createStore, Store, Reducer} từ 'redux'' điều này hoạt động tốt trong bản 2.3.0-dev.20170320 –

Trả lời

31

Tôi gặp phải sự cố tương tự về dự án phản ứng gốc. Bản sửa lỗi này làm việc cho tôi:

Bạn phải thêm "moduleResolution": "node" vào các tùy chọn trình biên dịch để bao gồm các định nghĩa kiểu được liên kết trong các tệp package.json.

Tài liệu tại đây https://www.typescriptlang.org/docs/handbook/module-resolution.html

+2

Tôi đoán bạn sẽ được tha thứ khi nghĩ rằng, khi họ nói "Ngày nay, chiến lược này chủ yếu hiện diện cho khả năng tương thích ngược."trong tài liệu chính thức của họ,' cổ điển' sẽ không phải là mặc định ... Điều này chỉ giải quyết cho tôi rất nhiều đau, cảm ơn –

+0

Điều đó giải quyết vấn đề của tôi là tốt. FTFM "Có hai chiến lược phân giải mô-đun có thể có: Nút và cổ điển (...) Nếu không được chỉ định, mặc định là Classic cho --module AMD | Hệ thống | Còn ES2015 hoặc Node. "Https://www.typescriptlang.org/docs/handbook/module-resolution.html – Tiago

5

Tôi hoàn nguyên về @types/[email protected] và giải quyết được sự cố. Phiên bản này bao gồm các tập tin index.d.ts cho redux. Có thể có sự cố với trình biên dịch TypeScript không tìm kiếm tệp index.d.ts trong thư mục node_modules/redux bình thường, nhưng chỉ dưới node_module/@types.

+0

Dường như là vấn đề. Làm việc cho tôi. –

Các vấn đề liên quan