您的当前位置:首页正文

三步将 React Native 项目运行在 Web 浏览器上面

来源:花图问答

npm install react-web-cli -g

安装配置 React web 等:

react-web init <当前项目目录>

执行完成之后,会在你项目目录下面 npm install
相关库,并自动创建web/webpack.config.js
文件,里面有一份写好的配置。此时目录结构为:

.├── README.md├── android/├── index.android.js├── index.ios.js├── ios/├── package.json└── web/ └── webpack.config.js

var config = { paths: { src: path.join(ROOT_PATH, '.'), index: path.join(ROOT_PATH, 'index.web'), },};

然后我们创建 index.web.js
文件。这个文件其实跟 index.ios.js
非常像,只是略有不同。主要区别在于:iOS 只需要 AppRegistry.registerComponent('Awes', () => Awes);
即可让 Xcode 的 Native 代码接收处理你的 JS 代码,而 Web 端是需要插入到 DOM 节点中才可以用。因此我们需要在 index.web.js
最下面添加如下代码:

AppRegistry.registerComponent('Awes', () => Awes);if (Platform.OS == 'web') { var app = document.createElement('div'); document.body.appendChild(app); AppRegistry.runApplication('Awes', { rootTag: app });}

然后在最上面 require
部分需要引入 Platform
组件。这样配置部分就已经处理完成了,执行 react-web start
命令即可启动调试服务器啦!


可以随便修改试下,跟 React Native 模拟器里面的体验几乎一样。
第三步:测试并打包 Web 版本代码
当你修改开发完,并对 Web 端也测试好了,就可以打包发布了。react-web-cli
工具打包的命令是:

react-web bundle

resolve: { alias: { 'react-native': 'react-web', 'ReactNativeART': 'react-art', }, extensions: ['', '.js', '.jsx'],},

var Text = require('ReactText');

而不是以前那样:

var {Text} = require('react-native');