mirror of
https://github.com/zoriya/react-native-web.git
synced 2025-12-06 06:36:13 +00:00
Fix workflows and monorepo deps
* Remove 'react' packages from monorepo dependencies. * Ensure 'react-native-web' package is built first.
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"packages": ["packages/react-native-web", "packages/babel-plugin-react-native-web"],
|
"packages": ["packages/react-native-web", "packages/babel-plugin-react-native-web"],
|
||||||
"buildCommand": "compile",
|
"buildCommand": "build",
|
||||||
"sandboxes": ["/packages/react-native-web-examples/"],
|
"sandboxes": ["/packages/react-native-web-examples/"],
|
||||||
"node": "16"
|
"node": "16"
|
||||||
}
|
}
|
||||||
|
|||||||
4
.github/CONTRIBUTING.md
vendored
4
.github/CONTRIBUTING.md
vendored
@@ -14,7 +14,7 @@ Fork, then clone the repo:
|
|||||||
git clone https://github.com/your-username/react-native-web.git
|
git clone https://github.com/your-username/react-native-web.git
|
||||||
```
|
```
|
||||||
|
|
||||||
Install dependencies (requires Node.js >= 14.0):
|
Install dependencies (requires Node.js >= 16.0):
|
||||||
|
|
||||||
```
|
```
|
||||||
npm install
|
npm install
|
||||||
@@ -86,7 +86,7 @@ Run all the automated tests:
|
|||||||
npm run test
|
npm run test
|
||||||
```
|
```
|
||||||
|
|
||||||
### New Features
|
## New Features
|
||||||
|
|
||||||
Please open an issue with a proposal for a new feature or refactoring before starting on the work. We don't want you to waste your efforts on a pull request that we won't want to accept.
|
Please open an issue with a proposal for a new feature or refactoring before starting on the work. We don't want you to waste your efforts on a pull request that we won't want to accept.
|
||||||
|
|
||||||
|
|||||||
2
.github/workflows/performance.yml
vendored
2
.github/workflows/performance.yml
vendored
@@ -9,7 +9,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: necolas/compressed-size-action@master
|
- uses: necolas/compressed-size-action@master
|
||||||
with:
|
with:
|
||||||
build-script: "build -w react-native-web"
|
build-script: "compile"
|
||||||
exclude: "./packages/react-native-web/dist/cjs/{index.js,**/*.js}"
|
exclude: "./packages/react-native-web/dist/cjs/{index.js,**/*.js}"
|
||||||
pattern: "./packages/react-native-web/dist/{index.js,**/*.js}"
|
pattern: "./packages/react-native-web/dist/{index.js,**/*.js}"
|
||||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
|||||||
8
.github/workflows/react-integration.yml
vendored
8
.github/workflows/react-integration.yml
vendored
@@ -12,9 +12,9 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: '14.x'
|
node-version: '16.x'
|
||||||
- run: npm install
|
- run: npm install
|
||||||
# Install next-tagged versions
|
# Update react-native-web to use react@next
|
||||||
- run: npm update react@next react-dom@next
|
- run: npm update react@next react-dom@next -w react-native-web
|
||||||
# Only run the unit tests
|
# Run the unit tests
|
||||||
- run: npm run unit
|
- run: npm run unit
|
||||||
|
|||||||
8
.github/workflows/tests.yml
vendored
8
.github/workflows/tests.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: '14.x'
|
node-version: '16.x'
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm run format
|
- run: npm run format
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: '14.x'
|
node-version: '16.x'
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm run flow
|
- run: npm run flow
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: '14.x'
|
node-version: '16.x'
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm run lint
|
- run: npm run lint
|
||||||
|
|
||||||
@@ -44,6 +44,6 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: '14.x'
|
node-version: '16.x'
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm run unit
|
- run: npm run unit
|
||||||
|
|||||||
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) Nicolas Gallagher.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
# Development monorepo
|
# Development monorepo
|
||||||
|
|
||||||
|
This is the development monorepo for "React Native for Web" and related projects.
|
||||||
|
|
||||||
## Structure
|
## Structure
|
||||||
|
|
||||||
* `.github`
|
* `.github`
|
||||||
@@ -23,7 +25,8 @@
|
|||||||
* Use `npm run dev -w <package-name>` to run the dev script for a specific package.
|
* Use `npm run dev -w <package-name>` to run the dev script for a specific package.
|
||||||
* `test`
|
* `test`
|
||||||
* Use `npm run test` to run tests for every package.
|
* Use `npm run test` to run tests for every package.
|
||||||
* Use `npm run test` to run tests for every package.
|
|
||||||
|
More details can be found in the contributing guide below.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
|||||||
87
package-lock.json
generated
87
package-lock.json
generated
@@ -9,6 +9,7 @@
|
|||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
|
"packages/react-native-web",
|
||||||
"packages/*"
|
"packages/*"
|
||||||
],
|
],
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -45,10 +46,7 @@
|
|||||||
"lint-staged": "^10.5.4",
|
"lint-staged": "^10.5.4",
|
||||||
"minimist": "^1.2.6",
|
"minimist": "^1.2.6",
|
||||||
"npm-run-all": "^4.1.3",
|
"npm-run-all": "^4.1.3",
|
||||||
"prettier": "^2.2.1",
|
"prettier": "^2.2.1"
|
||||||
"react": "^17.0.2",
|
|
||||||
"react-dom": "^17.0.2",
|
|
||||||
"react-test-renderer": "^17.0.2"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@11ty/dependency-tree": {
|
"node_modules/@11ty/dependency-tree": {
|
||||||
@@ -13161,36 +13159,6 @@
|
|||||||
"resolved": "packages/react-native-web-examples",
|
"resolved": "packages/react-native-web-examples",
|
||||||
"link": true
|
"link": true
|
||||||
},
|
},
|
||||||
"node_modules/react-shallow-renderer": {
|
|
||||||
"version": "16.14.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.14.1.tgz",
|
|
||||||
"integrity": "sha512-rkIMcQi01/+kxiTE9D3fdS959U1g7gs+/rborw++42m1O9FAQiNI/UNRZExVUoAOprn4umcXf+pFRou8i4zuBg==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"object-assign": "^4.1.1",
|
|
||||||
"react-is": "^16.12.0 || ^17.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"react": "^16.0.0 || ^17.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/react-test-renderer": {
|
|
||||||
"version": "17.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz",
|
|
||||||
"integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"object-assign": "^4.1.1",
|
|
||||||
"react-is": "^17.0.2",
|
|
||||||
"react-shallow-renderer": "^16.13.1",
|
|
||||||
"scheduler": "^0.20.2"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"react": "17.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/read-pkg": {
|
"node_modules/read-pkg": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
|
||||||
@@ -15850,7 +15818,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/babel-plugin-react-native-web": {
|
"packages/babel-plugin-react-native-web": {
|
||||||
"version": "0.18.2",
|
"version": "0.18.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.12.13",
|
"@babel/core": "^7.12.13",
|
||||||
@@ -15862,10 +15830,12 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"classnames": "^2.3.1",
|
"classnames": "^2.3.1",
|
||||||
"d3-scale-chromatic": "^2.0.0",
|
"d3-scale-chromatic": "^2.0.0",
|
||||||
"react-native-web": "0.18.2"
|
"react": ">=17.0.2",
|
||||||
|
"react-dom": ">=17.0.2",
|
||||||
|
"react-native-web": "0.18.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-plugin-react-native-web": "0.18.2",
|
"babel-plugin-react-native-web": "0.18.3",
|
||||||
"css-loader": "^5.0.2",
|
"css-loader": "^5.0.2",
|
||||||
"style-loader": "^2.0.0",
|
"style-loader": "^2.0.0",
|
||||||
"url-loader": "^4.1.1",
|
"url-loader": "^4.1.1",
|
||||||
@@ -15879,7 +15849,7 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"packages/react-native-web": {
|
"packages/react-native-web": {
|
||||||
"version": "0.18.2",
|
"version": "0.18.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.18.6",
|
"@babel/runtime": "^7.18.6",
|
||||||
@@ -15897,7 +15867,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/react-native-web-docs": {
|
"packages/react-native-web-docs": {
|
||||||
"version": "0.18.2",
|
"version": "0.18.3",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@11ty/eleventy": "^1.0.0",
|
"@11ty/eleventy": "^1.0.0",
|
||||||
"@11ty/eleventy-navigation": "^0.3.2",
|
"@11ty/eleventy-navigation": "^0.3.2",
|
||||||
@@ -15918,18 +15888,19 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/react-native-web-examples": {
|
"packages/react-native-web-examples": {
|
||||||
"version": "0.18.2",
|
"version": "0.18.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"babel-plugin-react-native-web": "0.18.2",
|
"babel-plugin-react-native-web": "0.18.2",
|
||||||
"next": "^12.1.0",
|
"next": "^12.1.0",
|
||||||
"react": "^17.0.2",
|
"react": "^17.0.2",
|
||||||
"react-dom": "^17.0.2",
|
"react-dom": "^17.0.2",
|
||||||
"react-native-web": "0.18.2"
|
"react-native-web": "0.18.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.12.13",
|
"@babel/core": "^7.12.13",
|
||||||
"@babel/preset-flow": "^7.12.13"
|
"@babel/preset-flow": "^7.12.13",
|
||||||
|
"babel-plugin-react-native-web": "0.18.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/react-native-web/node_modules/@babel/runtime": {
|
"packages/react-native-web/node_modules/@babel/runtime": {
|
||||||
@@ -19084,11 +19055,13 @@
|
|||||||
"benchmarks": {
|
"benchmarks": {
|
||||||
"version": "file:packages/benchmarks",
|
"version": "file:packages/benchmarks",
|
||||||
"requires": {
|
"requires": {
|
||||||
"babel-plugin-react-native-web": "0.18.2",
|
"babel-plugin-react-native-web": "0.18.3",
|
||||||
"classnames": "^2.3.1",
|
"classnames": "^2.3.1",
|
||||||
"css-loader": "^5.0.2",
|
"css-loader": "^5.0.2",
|
||||||
"d3-scale-chromatic": "^2.0.0",
|
"d3-scale-chromatic": "^2.0.0",
|
||||||
"react-native-web": "0.18.2",
|
"react": ">=17.0.2",
|
||||||
|
"react-dom": ">=17.0.2",
|
||||||
|
"react-native-web": "0.18.3",
|
||||||
"style-loader": "^2.0.0",
|
"style-loader": "^2.0.0",
|
||||||
"url-loader": "^4.1.1",
|
"url-loader": "^4.1.1",
|
||||||
"webpack": "^5.21.2",
|
"webpack": "^5.21.2",
|
||||||
@@ -25359,33 +25332,11 @@
|
|||||||
"requires": {
|
"requires": {
|
||||||
"@babel/core": "^7.12.13",
|
"@babel/core": "^7.12.13",
|
||||||
"@babel/preset-flow": "^7.12.13",
|
"@babel/preset-flow": "^7.12.13",
|
||||||
"babel-plugin-react-native-web": "0.18.2",
|
"babel-plugin-react-native-web": "0.18.3",
|
||||||
"next": "^12.1.0",
|
"next": "^12.1.0",
|
||||||
"react": "^17.0.2",
|
"react": "^17.0.2",
|
||||||
"react-dom": "^17.0.2",
|
"react-dom": "^17.0.2",
|
||||||
"react-native-web": "0.18.2"
|
"react-native-web": "0.18.3"
|
||||||
}
|
|
||||||
},
|
|
||||||
"react-shallow-renderer": {
|
|
||||||
"version": "16.14.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.14.1.tgz",
|
|
||||||
"integrity": "sha512-rkIMcQi01/+kxiTE9D3fdS959U1g7gs+/rborw++42m1O9FAQiNI/UNRZExVUoAOprn4umcXf+pFRou8i4zuBg==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"object-assign": "^4.1.1",
|
|
||||||
"react-is": "^16.12.0 || ^17.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"react-test-renderer": {
|
|
||||||
"version": "17.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz",
|
|
||||||
"integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"object-assign": "^4.1.1",
|
|
||||||
"react-is": "^17.0.2",
|
|
||||||
"react-shallow-renderer": "^16.13.1",
|
|
||||||
"scheduler": "^0.20.2"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"read-pkg": {
|
"read-pkg": {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"clean": "del-cli ./packages/*/dist",
|
"clean": "del-cli ./packages/*/dist",
|
||||||
"build": "npm run clean && npm run build --workspaces --if-present",
|
"build": "npm run clean && npm run build --workspaces --if-present",
|
||||||
|
"compile": "npm run build",
|
||||||
"dev": "npm run dev --workspaces --if-present",
|
"dev": "npm run dev --workspaces --if-present",
|
||||||
"flow": "flow --flowconfig-name ./configs/.flowconfig",
|
"flow": "flow --flowconfig-name ./configs/.flowconfig",
|
||||||
"format": "prettier --check --ignore-path ./configs/.prettierignore \"**/*.js\"",
|
"format": "prettier --check --ignore-path ./configs/.prettierignore \"**/*.js\"",
|
||||||
@@ -55,12 +56,10 @@
|
|||||||
"lint-staged": "^10.5.4",
|
"lint-staged": "^10.5.4",
|
||||||
"minimist": "^1.2.6",
|
"minimist": "^1.2.6",
|
||||||
"npm-run-all": "^4.1.3",
|
"npm-run-all": "^4.1.3",
|
||||||
"prettier": "^2.2.1",
|
"prettier": "^2.2.1"
|
||||||
"react": "^17.0.2",
|
|
||||||
"react-dom": "^17.0.2",
|
|
||||||
"react-test-renderer": "^17.0.2"
|
|
||||||
},
|
},
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
|
"packages/react-native-web",
|
||||||
"packages/*"
|
"packages/*"
|
||||||
],
|
],
|
||||||
"husky": {
|
"husky": {
|
||||||
|
|||||||
@@ -5,11 +5,13 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"clean": "del-cli ./dist",
|
"clean": "del-cli ./dist",
|
||||||
"build": "NODE_ENV=production npm run dev",
|
"build": "NODE_ENV=production npm run dev",
|
||||||
"dev": "npm run clean && mkdir -p dist && cp -f index.html dist/index.html && ./node_modules/.bin/webpack-cli --config ./webpack.config.js"
|
"dev": "npm run clean && mkdir -p dist && cp -f index.html dist/index.html && webpack --config ./webpack.config.js"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"classnames": "^2.3.1",
|
"classnames": "^2.3.1",
|
||||||
"d3-scale-chromatic": "^2.0.0",
|
"d3-scale-chromatic": "^2.0.0",
|
||||||
|
"react": ">=17.0.2",
|
||||||
|
"react-dom": ">=17.0.2",
|
||||||
"react-native-web": "0.18.3"
|
"react-native-web": "0.18.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ The [documentation site](https://necolas.github.io/react-native-web/) ([source](
|
|||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
The [examples app](https://pk4zn6v4o0.sse.codesandbox.io/) ([source](https://github.com/necolas/react-native-web/blob/master/packages/react-native-web-examples)) demonstrates many available features. Fork the [codesandbox](https://codesandbox.io/s/github/necolas/react-native-web/tree/master/packages/react-native-web-examples)) to make changes and see the results.
|
The [examples app](https://pk4zn6v4o0.sse.codesandbox.io/) ([source](https://github.com/necolas/react-native-web/blob/master/packages/react-native-web-examples)) demonstrates many available features. Fork the [codesandbox](https://codesandbox.io/s/github/necolas/react-native-web/tree/master/packages/react-native-web-examples) to make changes and see the results.
|
||||||
|
|
||||||
You'll notice that there is no reference to `react-dom` in components. The `App` component that is shown below is defined using the APIs and Components of React Native, but it can also be rendered on the web using React Native for Web.
|
You'll notice that there is no reference to `react-dom` in components. The `App` component that is shown below is defined using the APIs and Components of React Native, but it can also be rendered on the web using React Native for Web.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user