2018-11-19 10:32:22 +00:00
# Contributing to React Native WebView
First off, _thank you_ for considering contributing to the React Native Community. The community-supported packages are only possible because of amazing people like you.
Secondly, we'd like the contribution experience to be as good as possible. While we are a small all-volunteer team, we are happy to hear feedback about your experience, and if we can make the docs or experience better please let us know.
## How to test changes
After you fork the repo, clone it to your machine, and make your changes, you'll want to test them in an app.
2020-02-12 23:39:11 +00:00
There are two methods of testing:
1) Testing within a clone of react-native-webview
2) Testing in a new `react-native init` project
### Testing within react-native-webview
#### For all platforms:
```
$ yarn install
```
#### For Android:
```
$ yarn start:android
```
The Android example app will built, the Metro Bundler will launch, and the example app will be installed and started in the Android emulator.
#### For iOS:
```
$ cd example/ios
$ pod install
$ cd ../..
$ yarn start:ios
```
The iOS example app will be built, the Metro bundler will launch, and the example app will be install and started in the Simulator.
#### for macOS:
```
$ open example/macos/example.xcodeproj
$ yarn start:macos
```
The Metro Bundler will now be running in the Terminal for react-native-macos. In XCode select the `example-macos` target and Run.
2020-03-17 02:30:25 +00:00
#### For Windows:
```
$ yarn start:windows
$ open example/windows/WebViewWindows.sln and click run button.
```
The Metro Bundler will now be running in the Terminal for react-native-windows and the example app will be install and started
2020-02-12 23:39:11 +00:00
### Testing in a new `react-native init` project
2018-11-19 10:32:22 +00:00
In a new `react-native init` project, do this:
```
$ yarn add ../react-native-webview
$ react-native link react-native-webview
```
You may run into a problem where the `jest-haste-map` module map says react-native was added twice:
```
Loading dependency graph...(node:32651) UnhandledPromiseRejectionWarning: Error: jest-haste-map: Haste module naming collision:
Duplicate module name: react-native
Paths: /Users/myuser/TestApp/node_modules/react-native/package.json collides with /Users/myuser/TestApp/node_modules/react-native-webview/node_modules/react-native/package.json
```
Just remove the second path like this:
```
$ rm -rf ./node_modules/react-native-webview/node_modules/react-native
```
And then re-run the packager:
```
$ react-native start --reset-cache
```
When you make a change, you'll probably need to unlink, remove, re-add, and re-link `react-native-webview` :
```
$ react-native unlink react-native-webview & & yarn remove react-native-webview
$ yarn add ../react-native-webview & & react-native link react-native-webview
```
## Notes
2019-03-20 12:58:43 +00:00
- We use TypeScript.
- After pulling this repo and installing all dependencies, you can run tests using the command: `yarn ci`