React-native 转换为 web 项目

发布于 2023-04-17 20:19:08 字数 6571 浏览 108 评论 0

版本

  • react: xx ~ 16.8.3
  • react-native: 0.55 ~ 0.59.10
  • react-native-web: 0.10.0-alpha.2

{
  "name": "App",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "react": "16.8.3",
    "react-art": "^16.6.3",
    "react-dom": "^16.6.3",
    "react-mobile-datepicker": "^4.0.1",
    "react-native": "0.59.10",
    "react-native-code-push": "5.6.0",
    "react-native-gesture-handler": "^1.3.0",
    "react-native-keyboard-aware-scroll-view": "^0.5.0",
    "react-native-md5": "^1.0.0",
    "react-native-plugin-zhugeio": "^1.1.2",
    "react-native-popup-dialog": "^0.18.0",
    "react-native-scrollable-tab-view": "^0.8.0",
    "react-native-simple-store": "^1.3.0",
    "react-native-swiper": "^1.5.13",
    "react-native-web": "^0.10.0-alpha.2",
    "react-native-web-webview": "^0.2.8",
    "react-navigation": "^3.8.0",
    "react-redux": "^5.0.7",
    "redux": "^4.0.0",
    "redux-logger": "^3.0.6",
    "redux-thunk": "^2.3.0",
    "weixin-js-sdk": "^1.4.0-test"
  },
  "devDependencies": {
    "babel": "6.23.0",
    "babel-core": "6.26.0",
    "babel-jest": "^24.8.0",
    "babel-loader": "7.1.4",
    "babel-plugin-module-resolver": "^3.1.1",
    "babel-plugin-react-native-web": "^0.9.9",
    "babel-plugin-react-transform": "3.0.0",
    "babel-plugin-transform-runtime": "^6.23.0",
    "metro-react-native-babel-preset": "0.54.1",
    "babel-preset-es2015": "6.24.1",
    "babel-preset-react": "6.24.1",
    "babel-preset-react-native": "4.0.1",
    "babel-preset-stage-0": "6.24.1",
    "css-loader": "^2.0.2",
    "file-loader": "^4.0.0",
    "html-webpack-plugin": "^3.2.0",
    "jest": "^24.8.0",
    "react-native-web-image-loader": "0.0.6",
    "react-test-renderer": "16.0.0-alpha.6",
    "redux-devtools": "^3.4.1",
    "style-loader": "^0.23.1",
    "url-loader": "^1.1.2",
    "webpack": "^4.27.1",
    "webpack-cli": "^3.1.2",
    "webpack-dev-server": "^3.1.14",
    "webpack-merge": "^4.2.1"
  },
  "jest": {
    "preset": "react-native"
  }
}

web / h5 / 微信公众号

react-native-web 生成 h5 需要添加哪些库?webpack 打包需要哪些库,进行支持运行?


react-native-web

yarn add react-native-web

webpack

yarn add webpack --dev
# 依赖库 - 可选安装 
yarn add babel-loader --dev
yarn add style-loader --dev
yarn add css-loader --dev 
yarn add url-loader --dev
yarn add react-native-web-image-loader --dev

webpack-merge

对多个 Webpack配置 进行合并

yarn add webpack-merge  --dev
# 依赖库 - 必须
yarn add react-dom  --dev

webpack-dev-server

将 webpack 与提供实时 重新加载 的开发服务器一起使用。这应该仅用于开发。

yarn add webpack-dev-server --dev

#------------------------------------------
# info Direct dependencies
└─ webpack-dev-server@3.7.2
# info All dependencies
├─ @types/events@3.0.0
├─ @types/glob@7.1.1
├─ @types/minimatch@3.0.3
├─ @types/node@12.6.9
├─ ansi-html@0.0.7
├─ array-flatten@1.1.1
├─ array-union@1.0.2
├─ array-uniq@1.0.3
├─ async@1.5.2
├─ batch@0.6.1
├─ body-parser@1.19.0
├─ bonjour@3.5.0
├─ buffer-indexof@1.1.1
├─ connect-history-api-fallback@1.6.0
├─ content-disposition@0.5.3
├─ cookie-signature@1.0.6
├─ cookie@0.4.0
├─ deep-equal@1.0.1
├─ default-gateway@4.2.0
├─ del@4.1.1
├─ detect-node@2.0.4
├─ dns-equal@1.0.0
├─ dns-packet@1.3.1
├─ dns-txt@2.0.2
├─ eventsource@1.0.7
├─ express@4.17.1
├─ faye-websocket@0.10.0
├─ follow-redirects@1.7.0
├─ forwarded@0.1.2
├─ globby@6.1.0
├─ handle-thing@2.0.0
├─ hpack.js@2.1.6
├─ html-entities@1.2.1
├─ http-deceiver@1.2.7
├─ http-parser-js@0.4.10
├─ http-proxy-middleware@0.19.1
├─ http-proxy@1.17.0
├─ internal-ip@4.3.0
├─ ip-regex@2.1.0
├─ ipaddr.js@1.9.1
├─ is-path-cwd@2.2.0
├─ is-path-in-cwd@2.1.0
├─ is-path-inside@2.1.0
├─ json3@3.3.3
├─ killable@1.0.1
├─ loglevel@1.6.3
├─ media-typer@0.3.0
├─ merge-descriptors@1.0.1
├─ multicast-dns-service-types@1.1.0
├─ multicast-dns@6.2.3
├─ node-forge@0.7.5
├─ obuf@1.1.2
├─ opn@5.5.0
├─ original@1.0.2
├─ p-map@2.1.0
├─ p-retry@3.0.1
├─ path-is-inside@1.0.2
├─ path-to-regexp@0.1.7
├─ portfinder@1.0.21
├─ proxy-addr@2.0.5
├─ querystringify@2.1.1
├─ raw-body@2.4.0
├─ retry@0.12.0
├─ select-hose@2.0.0
├─ selfsigned@1.10.4
├─ serve-index@1.9.1
├─ sockjs-client@1.3.0
├─ sockjs@0.3.19
├─ spdy-transport@3.0.0
├─ spdy@4.0.1
├─ thunky@1.0.3
├─ type-is@1.6.18
├─ wbuf@1.7.3
├─ webpack-dev-middleware@3.7.0
├─ webpack-dev-server@3.7.2
└─ websocket-extensions@0.1.3

html-webpack-plugin

简化 HTML 文件的创建,为 Webpack 捆绑包 提供服务

yarn add html-webpack-plugin --dev

#------------------------------------------
# info Direct dependencies
└─ html-webpack-plugin@3.2.0
# info All dependencies
├─ camel-case@3.0.0
├─ clean-css@4.2.1
├─ css-select@1.2.0
├─ css-what@2.1.3
├─ dom-converter@0.2.0
├─ domhandler@2.4.2
├─ domutils@1.5.1
├─ entities@1.1.2
├─ he@1.2.0
├─ html-minifier@3.5.21
├─ html-webpack-plugin@3.2.0
├─ htmlparser2@3.10.1
├─ lower-case@1.1.4
├─ nth-check@1.0.2
├─ param-case@2.1.1
├─ pretty-error@2.1.1
├─ relateurl@0.2.7
├─ renderkid@2.0.3
├─ toposort@1.0.7
├─ uglify-js@3.4.10
└─ upper-case@1.1.3
yarn add babel-plugin-react-native-web --dev

# A Babel plugin that will alias `react-native` to `react-native-web` and exclude
# any modules not required by your app (keeping bundle size down).
# (一个babel插件,它会将react native别名为react native web,并排除应用程序不需要的任何模块
#  (保持bundle的大小较低)。)

#--------------------------------------------------------------------

# 注意 - 注意 - 注意 - (使用其中一个)
yarn add babel-preset-react-native --dev # rn_version < 0.57
yarn add metro-react-native-babel-preset --dev # rn_version >= 0.57
# https://github.com/facebook/metro/tree/master/packages/metro-react-native-babel-preset

#--------------------------------------------------------------------

yarn add babel-preset-react --dev

yarn add babel-preset-es2015 --dev
# ES6生成器函数将始终被转换为复杂的ES5代码

yarn add babel-preset-stage-0 --dev
# stage-x和上面的es2015等有些类似,但是它是按照JavaScript的提案阶段区分的,一共有5个阶段。
# 而数字越小,阶段越靠后,存在依赖关系。也就是说stage-0是包括stage-1的,以此类推。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

梦途

暂无简介

文章
评论
26 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文