2016-12-01 25 views
13

Tôi đã cài đặt Jest v17.0.3 trong dự án phản ứng của tôi.Jest thất bại với lỗi: Không thể tìm thấy mô-đun 'phản ứng/lib/ReactComponentTreeHook'

Khi tôi chạy jest địa phương nó hoạt động tốt, nhưng trên server build nó không thành công với:

Error: Cannot find module 'react/lib/ReactComponentTreeHook' from 'ReactDebugTool.js'

Cả hai máy đang chạy phiên bản 6.9.1 nút và NPM phiên bản 4.0.2.

+0

Tôi đã có một vấn đề tương tự ngày hôm nay, tôi nghĩ rằng nó có liên quan đến việc thiếu phụ thuộc vì nó xảy ra với tôi trong bối cảnh thay đổi tệp 'package.json' của tôi. –

+0

Bạn có tìm thấy câu trả lời không? Tôi có cùng một vấn đề. – Flavien

+0

Tôi đã vô tình xóa 'npm install' khỏi tập lệnh xây dựng của mình và do đó tôi đã có các mô-đun cũ. –

Trả lời

11

sử dụng cùng phiên bản phản ứng và phản ứng-dom. Vấn đề của tôi đã được khắc phục sau khi sử dụng lệnh này

npm install --save [email protected] [email protected] 

vấn đề này đặc biệt xảy ra khi phản ứng 15.4.0 ở trên.

+0

Trong trường hợp của tôi -trả lời 'đó không phải là ngang bằng với phản ứng và phản ứng-dom. – Johnride

5

Bạn có thể kiểm tra phiên bản React nào bạn đang sử dụng không? Có giống nhau trên cả hai máy chủ không? Tôi sẽ thử xóa node_modules và cài đặt lại các phụ thuộc. Lý do tôi cho rằng đây là trong React v15.4.0 bạn không thể nhập apis riêng và có vẻ như ReactDebugTools.js đang cố nhập từ react/lib/....

Từ bài đăng trên blog về Phản ứng v15.4.0 (Link):

However, there is a possibility that you imported private APIs from react/lib/*, or that a package you rely on might use them. We would like to remind you that this was never supported, and that your apps should not rely on internal APIs. The React internals will keep changing as we work to make React better.

Hope this helps!

-3

Tôi đã gặp vấn đề tương tự và tôi đã xóa các nút node_modules và chạy npm install và nó đã khắc phục sự cố.

+7

Trong khi câu trả lời luôn được đánh giá cao, câu hỏi này được hỏi 2 tháng trước và đã có giải pháp được chấp nhận. Giải pháp được chấp nhận cũng bao gồm ** điểm ** chính xác mà bạn đã nêu ra. Hãy cố gắng tránh những câu hỏi 'va chạm' lên đầu bằng cách cung cấp câu trả lời cho họ, trừ khi câu hỏi chưa được đánh dấu là đã giải quyết, hoặc bạn tìm thấy phương pháp thay thế tốt hơn đáng kể cho vấn đề :) –

2

Trong các phiên bản mới nhất của phản ứng chúng ta thường thấy lỗi này như chúng ta đã nạp 2 phiên bản của phản ứng:

Để chắc chắn rằng bạn chỉ có 1 phiên bản, chạy lệnh sau trong terminal của bạn:

  1. ls NPM phản ứng-dom enter image description here

  2. NPM ls phản ứng enter image description here

Cả hai phiên bản phản ứng và phản ứng-dom cần phải giống nhau. Nếu bất kỳ một trong số này trả về nhiều hơn 1 phiên bản thì không được hỗ trợ. Sau đó bạn phải chỉnh sửa nó trong package.json tương ứng

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