ctripcorp / crn Goto Github PK
View Code? Open in Web Editor NEWCRN是Ctrip React Native简称,由携程无线平台研发团队基于React Native框架优化,定制成稳定性和性能更佳、也更适合业务场景的跨平台开发框架。
License: MIT License
CRN是Ctrip React Native简称,由携程无线平台研发团队基于React Native框架优化,定制成稳定性和性能更佳、也更适合业务场景的跨平台开发框架。
License: MIT License
Task :react-native-gesture-handler:compileDebugJavaWithJavac FAILED
如题!
感谢CRN的开源!!!
用lazy 能替代里面首次加载优化策略吗
您好,如题:
注意到 CRNBridgeManager
中的 cachedBridgeList
为数组设计,印象中 RN 中的 bridge
实例不是只会有一个吗?为何使用一个 cacheBridgeList
来管理,在分包场景下,每次加载业务bundle时还更新common bridge
相关信息并不断调用 prepareBridgeIfNeed
接口。
比较困惑这块的逻辑,望解答,谢谢您
我是 Android 开发人员。
有几个问题想要请教一下。
我能否把整个 crn-cli pack
后的目录当作静态资源用 Git
管理起来,然后页面文件有改动之后 push
覆盖,这样我的客户端始终能请求到最新的页面文件(通过一些适当的缓存策略)。
能够接手客户端这边的 Okhttp
逻辑实现 “静态页面” 的缓存实现吗?例如通过 Code:304
、静态页面地址全路径#xxx
这样的方式,而尽量不依靠打包进 assets
文件夹来实现业务页面的实时更新。
谢谢!
请问base.mapping是一点点写的吗?还是自动生成的?将近400个id...
请问我们想用最新的0.60.x的版本,您们这个库会定期更新吗
1.在线模式的bundle文件也是做了分包处理吗,如果是在服务器上的bundle文件是压缩包吗
您好:
使用crn-cli init 创建项目后在华为P8手机上安装后立马闪退,操作步骤如下:
环境:windows10 企业版 ,node.js 版本10.15.2
1、npm install -g crn-cli
2、crn-cli init CRNDemo
3、yarn install
4、crn-cli run-android
安装到Android6版本上运行闪退,安装到Android9上能成功运行
crn-cli run-android 应用安装成功之后 应用启动之后 直接闪退 请问这个要怎么解决
在华为荣耀10,os9.0上摇晃手机点击dev setting就崩溃
CRN自定义的打包方案,理论上应该上不支持code-push热更新的吧,如果要支持热更新,后续CRN会考虑支持吗
Error: Unable to resolve module `./index` from `/Users/admin/Desktop/code/CRNAPPDEMO2/.__tmp/.`: The module `./index` could not be found from `/Users/admin/Desktop/code/CRNAPPDEMO2/.__tmp/.`. Indeed, none of these files exist:
* `/Users/admin/Desktop/code/CRNAPPDEMO2/.__tmp/index(.native||.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)`
* `/Users/admin/Desktop/code/CRNAPPDEMO2/.__tmp/index/index(.native||.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)`
at ModuleResolver.resolveDependency (/Users/admin/Desktop/code/CRNAPPDEMO2/node_modules/react-native/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:163:15)
at ResolutionRequest.resolveDependency (/Users/admin/Desktop/code/CRNAPPDEMO2/node_modules/react-native/node_modules/metro/src/node-haste/DependencyGraph/ResolutionRequest.js:52:18)
at DependencyGraph.resolveDependency (/Users/admin/Desktop/code/CRNAPPDEMO2/node_modules/react-native/node_modules/metro/src/node-haste/DependencyGraph.js:283:16)
at /Users/admin/Desktop/code/CRNAPPDEMO2/node_modules/react-native/node_modules/metro/src/lib/transformHelpers.js:261:42
at Server.<anonymous> (/Users/admin/Desktop/code/CRNAPPDEMO2/node_modules/react-native/node_modules/metro/src/Server.js:1038:41)
at Generator.next (<anonymous>)
at asyncGeneratorStep (/Users/admin/Desktop/code/CRNAPPDEMO2/node_modules/react-native/node_modules/metro/src/Server.js:99:24)
at _next (/Users/admin/Desktop/code/CRNAPPDEMO2/node_modules/react-native/node_modules/metro/src/Server.js:119:9)
at <anonymous>
1、如果打开预加载,则app会崩溃(可能是因为打包失败,没有读取到jsbundle)
2、在根目录下App.js中,import一个依赖就会报上面的错误,可能是服务在拆包的过程中出错了
3、现在只在android模拟器下测试,发现这个问题,iOS还没看
希望能介绍下针对大内存性能优化,界面卡顿UI渲染优化做了什么处理?因为项目也已经开发有一段时间,整体迁移至crn成本有点高
我已经在我的现有项目接入了。针对文档中不太详细的描述,补充一下,希望携程的大佬们能及时完善一下文档,更方便大家接入。
include ':ReactAndroid',':crnbase'
project(':ReactAndroid').projectDir = new File(rootProject.projectDir, './rnSource/ReactAndroid')
在gradle里引入是 implementation project(':crnbase')不是 implementation project(':base')
maven {url = "$rootDir/repo" }。
您好,这个app开发好,怎么直接加在crn bundle,而去掉CRN Demo这层?
然后在PackageManager 里的各种引用报错
'java.io.File android.content.Context.getFilesDir()' on a null object reference
ctrip.wireless.android:ReactAndroid:0.59.0-01-SNAPSHOT
中有包含两部分:com.facebook
和ctrip.cn
,如果com.facebook
完全是rn源码的话,为什么不把ctrip.cn
拿出来直接放在crnbase
模块中,这样就能完全和rn源码解耦了。
我们这边有自己维护一份rn源码,打包成了aar(new-rn
),一开始想的方式是 crn
依赖new-rn
而不是ctrip.wireless.android:ReactAndroid:0.59.0-01-SNAPSHOT
,现在由于ctrip.cn
这个package的原因,这样行不通了,有什么方式解决这个问题吗
您好,怎么根据不同模块分别打包不同的crn bundle
想要实现像h5那样的模式(无需发包):
前端人员只需要把rn页面打包成bundle(带hash),上传到服务器。
原生人员则只需要下载bundle比较hash来进行热更新(无需发包)。
这种的目前可以实现么???
机型三星 Note4, 系统6.0.1
We urgently need a solution for folding screen, because folding screen will be popularized.
前排点个赞
react-navigation的导航tab在crn框架下无法显示,不知道有没有人碰到这个问题,同样的代码在expo下是可以正常运行的
你好,我在 Ubuntu 上 init 项目过后,可以直接使用以下命令直接启动服务没?
crn-cli start
我执行过后,提示
[crn-cli]: 正在判断当前输入参数是否合法以及当前目录路径是否合法...
[crn-cli]: 当前输入参数合法!
[crn-cli]: 当前目录路径为: /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo
[crn-cli]: 当前启动的RN服务端口为: 8081
[crn-cli]: 正在判断当前RN服务是否已经启动...
[crn-cli]: 当前RN服务正在启动...
[crn-cli]: 当前写入启动服务脚本...
[crn-cli]: 写入启动服务脚本完成!
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/metro/src/shared/output/RamBundle/crn-as-assets.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/metro/src/shared/output/crn-bundle.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/metro/src/lib/createModuleIdFactory.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/metro/src/shared/output/RamBundle/as-assets.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/metro/src/shared/output/bundle.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/metro/src/ModuleGraph/worker/collectDependencies.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/metro-config/src/defaults/index.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/metro/src/shared/output/RamBundle.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/metro/src/lib/polyfills/require.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/react-native/Libraries/polyfills/lazyRequire.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/react-native/Libraries/Image/AssetSourceResolver.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/react-native/Libraries/Image/resolveAssetSource.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/@react-native-community/cli/build/commands/bundle/bundle.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/@react-native-community/cli/build/commands/bundle/buildBundle.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/@react-native-community/cli/build/commands/bundle/bundleCommandLineArgs.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/node_modules/react-native/rn-get-polyfills.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/rn-cli.config.js >文件
成功替换< /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/crn_common_entry.js >文件
[crn-cli]: 正在启动RN服务...
[crn-cli]: 执行以下脚本: /home/lychee/.local/share/Trash/files/CRNDemo/CRNDemo/.__tmp/launchPackager.command
[crn-cli]: 启动RN服务成功!
但是我查看了下,8081 上并没有程序在跑,我也无法访问。
非常感谢携程的开源。
看了一下crn-cli的代码,目前pack命令只支持生成common+一个业务。如果想要生成一个common+多个业务,应该如何配置js文件和打包呢?
感谢开源。就是现在手工导入配置麻烦,你们有计划将源码发布到cocoapods吗?
跑了下Demo 体验很棒,希望能够开源组件
eg: react-native-calendar-events这个组件需要原生配置, demo中配置的方法是什么?
Is this a bug?
Yes, as I can see the error logs, it lists everything except .jsx, .native.jsx, .ios.jsx, .etc
Indeed, none of these files exist:
* `***/src/app(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx)`
Reproduce
Change any jsx-syntax file‘s extension to .jsx to test
Suggestion
use metro.config.js to apply supported extensions
这是bug吗?
是,错误日志如下,除了jsx全都支持,即使是tsx
Indeed, none of these files exist:
* `***/src/app(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx)`
如何重现
把任意含jsx的组件后缀改为jsx
建议
使用metro.config.js的配置增加支持
我在使用crn-cli init AA后,为什么在生成后的项目名称却是CRNDemo?
目前提供的打包配置入口如下:
"packConfig": {
"entryFile": "index.js", //打包入口文件
"bundleOutput": "publish", //打包产物输出目录
"packageName": "CRNDemo", //包名
"dev": false //打包环境
}
如果有多个子业务在同一个工程下开发,怎么配置多业务打包的入口呢。
还有,请问这套框架怎么解决原生和RN路由跳转的一些问题。
执行了 npm install -g crn-cli ,但是报错
cli 的模板 package.json 里边的 script 应该是 crn-cli xxx 吧?
另外 启动 bundle server,路径在 ./project_name/__tmp
目录下,应该在 ./project_name
?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.