Reactive-Native学习:iOS工程内嵌React-Native(二)
2015-12-29 14:57
706 查看
继(一)成功后,进入第二步,似乎一切都不是那么顺利,按照官方文档进行下一步,进行到Start Development Server这一步时又出现问题了。
一切都缘于对npm命令的不熟悉吧,还有官方文档的不及时更新挖了很多的坑。
首先是执行启支服务命令
(JS_DIR=`pwd`/ReactComponent; cd Pods/React; npm run start -- --root $JS_DIR)
由于项目Pod React的时候用的是官方的配置:
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'Core',
'RCTImage',
'RCTNetwork',
'RCTText',
'RCTWebSocket',
# Add any other subspecs you want to use in your project
]
注:这里的path地址是你的react-native项目所在。
故这里cd找的应该是react-native下的React目录,可惜,失败了,报错:
先报
Error: Cannot find module 'babel-polyfill'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:289:25)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object.<anonymous> (/Users/xxx/Project/react-native/packager/babelRegisterOnly.js:11:1)
at Module._compile (module.js:425:26)
at Object.Module._extensions..js (module.js:432:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
at Module.require (module.js:366:17)
通过
npm install babel-polyfill
解决后报:
Error: Cannot find module 'babel-core/register'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:289:25)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at module.exports (/Users/xxx/Project/react-native/packager/babelRegisterOnly.js:28:3)
at Object.<anonymous> (/Users/xxx/Project/react-native/local-cli/cli.js:11:41)
at Module._compile (module.js:425:26)
at Object.Module._extensions..js (module.js:432:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
这时觉得不对劲,应该是哪里出错了,后续还有什么错还不一定呢。于是网上寻找别的方案:
后来把Pod配置改成:
pod 'React'
pod 'React', :subspecs => [
'RCTText',
'RCTImage',
'RCTNetwork',
'RCTWebSocket'
]
后,启动服务就在项目的Pods/React下了,运行,果然成功,但是找不到ReactComponents目录下的js,也就是js根目录设置不成功导至,看终端的Log就知道。
(这中间还有个不成功的小插曲,编译js bundle时失败,把项目下的Pods文件夹删除重新Pod install就可以了)
> react-native@0.11.0 start /Users/xxx/Project/Test/Pods/React
> ./packager/packager.sh || true "--root" "/Users/xxx/Project/Test/ReactComponent"
┌────────────────────────────────────────────────────────────────────────────┐
│ Running packager on port 8081. │
│ │
│ Keep this packager running while developing on any JS projects. Feel │
│ free to close this tab and run your own packager instance if you │
│ prefer. │
│ │
│ https://github.com/facebook/react-native │
│ │
└────────────────────────────────────────────────────────────────────────────┘
Looking for JS files in
/Users/xxx/Project/Test
寻找js文件的目录设置在项目根目录下了。
这是怎么回事呢?
后来在这篇文章里找到了答案:
启动服务的路径得改成:
JS_DIR=`pwd`/ReactComponent; cd Pods/React/packager; node packager.js --root $JS_DIR
就ok了。
遇到 RCTRootView.h not found 等奇怪的问题实在找不出原因,就把Podfile、Podfile.lock、 Pods目录全清除掉从
Pod init开始重新生成一遍,有可能就ok了。
参考文章:http://blog.chenghu.me/tag/ios.html
一切都缘于对npm命令的不熟悉吧,还有官方文档的不及时更新挖了很多的坑。
首先是执行启支服务命令
(JS_DIR=`pwd`/ReactComponent; cd Pods/React; npm run start -- --root $JS_DIR)
由于项目Pod React的时候用的是官方的配置:
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'Core',
'RCTImage',
'RCTNetwork',
'RCTText',
'RCTWebSocket',
# Add any other subspecs you want to use in your project
]
注:这里的path地址是你的react-native项目所在。
故这里cd找的应该是react-native下的React目录,可惜,失败了,报错:
先报
Error: Cannot find module 'babel-polyfill'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:289:25)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object.<anonymous> (/Users/xxx/Project/react-native/packager/babelRegisterOnly.js:11:1)
at Module._compile (module.js:425:26)
at Object.Module._extensions..js (module.js:432:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
at Module.require (module.js:366:17)
通过
npm install babel-polyfill
解决后报:
Error: Cannot find module 'babel-core/register'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:289:25)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at module.exports (/Users/xxx/Project/react-native/packager/babelRegisterOnly.js:28:3)
at Object.<anonymous> (/Users/xxx/Project/react-native/local-cli/cli.js:11:41)
at Module._compile (module.js:425:26)
at Object.Module._extensions..js (module.js:432:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
这时觉得不对劲,应该是哪里出错了,后续还有什么错还不一定呢。于是网上寻找别的方案:
后来把Pod配置改成:
pod 'React'
pod 'React', :subspecs => [
'RCTText',
'RCTImage',
'RCTNetwork',
'RCTWebSocket'
]
后,启动服务就在项目的Pods/React下了,运行,果然成功,但是找不到ReactComponents目录下的js,也就是js根目录设置不成功导至,看终端的Log就知道。
(这中间还有个不成功的小插曲,编译js bundle时失败,把项目下的Pods文件夹删除重新Pod install就可以了)
> react-native@0.11.0 start /Users/xxx/Project/Test/Pods/React
> ./packager/packager.sh || true "--root" "/Users/xxx/Project/Test/ReactComponent"
┌────────────────────────────────────────────────────────────────────────────┐
│ Running packager on port 8081. │
│ │
│ Keep this packager running while developing on any JS projects. Feel │
│ free to close this tab and run your own packager instance if you │
│ prefer. │
│ │
│ https://github.com/facebook/react-native │
│ │
└────────────────────────────────────────────────────────────────────────────┘
Looking for JS files in
/Users/xxx/Project/Test
寻找js文件的目录设置在项目根目录下了。
这是怎么回事呢?
后来在这篇文章里找到了答案:
启动服务的路径得改成:
JS_DIR=`pwd`/ReactComponent; cd Pods/React/packager; node packager.js --root $JS_DIR
就ok了。
遇到 RCTRootView.h not found 等奇怪的问题实在找不出原因,就把Podfile、Podfile.lock、 Pods目录全清除掉从
Pod init开始重新生成一遍,有可能就ok了。
参考文章:http://blog.chenghu.me/tag/ios.html
相关文章推荐
- ReactiveCocoa源码拆分解析(四)
- ReactiveCocoa完整demo教程No.1
- react native环境搭建for iOS
- Redux系列02:一个炒鸡简单的react+redux例子
- 整理了一份React-Native学习指南
- Mac 10.11 React Native 安装记录
- Reactor模式
- react-native css属性
- ReactiveCocoa框架下的MVVM模式解读
- Reactive-Native学习:查看8081端口
- 记录ReactNative在windows下Android环境配置
- react+babel+webpack初试
- ReactiveCocoa 框架 (一)-- 函数响应式编程(FRP)框架
- Reactive-Native学习:iOS工程内嵌React-Native(一)
- react-native start 运行流程
- ReactiveCocoa源码拆分解析(三)
- React 学习二 组件
- react canvas
- Redux系列02:一个炒鸡简单的react+redux例子
- Codeforces Round #336 (Div. 2) 608C Chain Reaction(dp)