React-360 二次开发的一些心得

react-360 二次开发的一些心得

前面花了一些时间介绍 《React-360 源码阅读 - 一张图带你理解 React-360 结构》,有兴趣可以阅读下。但是 React-360 相对我们而言,目前也还不是足够稳定,以及有的需求点他们也并未实现,因此很有可能我们需要进行二次开发;

因此我们首先需要去他们 Github 上 fork 一份,

https://facebook.github.io/react-360/

我们 clone 到本地的时候,可以通过相对目录来实现我们项目对二次开发的 React-360 的引入了。
然后我们在本地项目里通过软连接来实现 node_module 的文件替换:

cd node_modules && rm -rf react-360-web

# 建立 react-360-web, 目录根据实际情况传入
ln -s ../../react-360/React360 react-360-web

初次之外,我们需要在 rn-cli.config.js 引入我们的文件,要不然会提示

unable to reoslve "react-360-web" in module map

大致这样的字样,

编辑 rn-cli.config.js 这样的字样

// rn-cli.config.js

...
function getRoots() {
  var root = process.env.REACT_NATIVE_APP_ROOT;
  if (root) {
    return [path.resolve(root)];
  }
  return [path.resolve(__dirname), path.resolve('../react-360')];
}

这样你就可以看到使用自己的 react-360 的框架了。

还会有另外一个问题,就是如果你重新安装了,重启可能会遇见

unable to resolve three module in module map and in directories

记得这个时候在启动命令的时候我们需要添加 --reset-cache

node node_modules/react-native/local-cli/cli.js start --port 8081 --reset-cache

确保 自己 master 代码的高质量,因为你可以在 dev 上添加自己的业务代码,但是 master 代码最好确保每次 merge 可以提到官方的 PR 这样,也是对社区的一个反馈。