2017-04-24 14 views
5

Tôi muốn kiểm tra luồng trong dự án React Native của mình. Tôi chạy dòng chảy và thấy rằng nó không có hiệu lực trên các tập tin Android. Tôi đã tìm thấy mã được cung cấp dưới đây trong .flowconfig:Tại sao tệp .flowconfig của React Native bỏ qua các tệp .android.js?

[ignore] 

# We fork some components by platform. 
.*/*.web.js 
.*/*.android.js 

Tại sao nhóm React Native bỏ qua những tệp này? Tôi không thể tìm thấy nhiều thông tin về cùng một nơi khác. Tôi biết rằng tôi có thể thực hiện các chỉnh sửa và luồng sẽ bắt đầu xem xét các tệp android, nhưng tôi không chắc liệu nó có đúng không. Ví dụ, đây là những gì fabergua đã nhận xét về một vấn đề Flow doesn't recognize platform-specific react-native files liên quan đến nó:

@mhollweck: Phản ứng .flowconfig mặc định Native được thiết lập để bỏ qua tất cả các file .android.js. Bạn có thể giải quyết vấn đề này bằng cách thay đổi -. / [.] Android.js đến. /node_modules /. /*[.]android.js trong .flowconfig của dự án của bạn.

Nhưng, chúng ta có nên tiếp tục với cách giải quyết như vậy không? Nó sẽ không gây rối với dự án khi chúng tôi nâng cấp nó qua phản ứng-native-git-upgrade?

Trả lời

2

Tôi luôn nghĩ rằng họ bỏ qua Android theo mặc định vì đôi khi bạn muốn Flow hoạt động ổn định trên mô-đun của nền tảng cụ thể và iOS là nền tảng ban đầu cho React Native. Giả sử bạn cố gắng "chuyển sang định nghĩa" cho một hàm cụ thể được xác định trong cả hai số myFunction.ios.jsmyFunction.android.js. Khi bỏ qua *.android.js, luồng sẽ liên tục chuyển bạn đến các tệp *.ios.js. Vì vậy, nếu ứng dụng của bạn chủ yếu tập trung vào Android, tôi sẽ chuyển sang ứng dụng đó là bỏ qua *.ios.js.

+0

Got nó. Nhưng, điều gì sẽ xảy ra nếu trọng tâm chính của tôi là cả Android và iOS? Ngoài ra, là Ok để thay đổi cấu hình được thiết lập bởi nhóm React Native? –

+0

Đó là chắc chắn là ok để thay đổi cấu hình mặc định miễn là bạn hiểu những gì họ đang làm. Tôi sẽ cố gắng loại bỏ '* .android.js' bỏ qua nếu tôi là bạn, và xem điều đó có phù hợp với bạn hay không. –

+0

Tuyệt vời. Cảm ơn @Tanner –

0

*.android.js file được bỏ qua bởi mặc định để lựa chọn một nền tảng tùy tiện, nhưng có cũng cần phải chạy dòng chảy theo cách sau:

[ignore] 
; We fork some components by platform 
.*/*[.]ios.js 

... 

[options] 
module.file_ext=.native.js 
module.file_ext=.android.js 
module.file_ext=.js 
Các vấn đề liên quan