-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
增加 React Native 支持的 Taro 3.2.0 版本测试通告 #8180
Comments
去掉了 webpack 后,source-map 的支持更加简单,这对于开发体验是一个巨大的提升有个疑惑,去掉的话,类似preval这种特性,RN里面怎么处理? |
@tourze 你指的是这种特性?现在暂不支持这种特性,具体实现可以用 babel插件去做。刚试了下 taro3.0.8 weapp h5 平台也是不支持的,rn 的做法尽量跟其他平台保持一致。对于跨端的配置更推荐使用官方文档 https://taro-docs.jd.com/taro/docs/envs |
@tourze 想加这个特性欢迎开个 issue 大家一起讨论啊哈 |
给一个建议:全局配置config(App.tsx 里面的config配置),单独提出去可配置,支持编译时确定config内容。我们现在做法是 config/index.js 里面动态读取不同端 app.config.json 替换 App.tsx 里的config |
是的,现在大部分做法用一个文件在运行时去require不同的文件,比如config文件。但这样就需要一个额外的文件去做这件事,其实我更倾向于可以根据 entryFileName 去读 entryFileName.config,不一定是 app,目前小程序不支持。 |
哎,虽然很佩服Taro的愿景...但是可以先解决小程序的的bug或者功能。有多少用户使用Taro开开发App呢 |
@ningkaikok 不冲突哈,react native 这一块现在58技术团队在维护 |
支持 ! |
@liganghui 已经提上日程🐶 |
3.2.0-canary.2 更新内容1.app入口公共样式注入到页面失效修复 |
3.2.0-canary.3 更新内容
|
taro-ui有没有考虑支持rn |
有没有示例工程呢? |
@492869397 内部已经在考虑了 |
没有复杂的,直接init吧,可以用 taro3 做个简单的小程序适配一下 |
新手起步注意事项
|
3.2.0-canary.4 更新内容
|
@tarojs/taro-rn @tarojs/rn-runner 被安装为 2.x 版本。修改下package.json,重新安装下。 |
@weipengzou 上面的报错怎么怎么还有包版本是 3.2.0-canary.3,你都改成 3.2.0-canary.4 然后再 install |
scss中引用了别名,taro-rn无法解析。看了下,应该是截图这里没对别名进行处理。 在之前的taro开发中,scss默认也是不支持别名的,但是可以通过在config/index.js中加入:
来解决。 |
另外发现,在 *.config.js (如 app.config.js)中无法读取 process.env.TARO_ENV。 在实际开发中,会有部分端不需要一些页面。如有一个”关于我们“的页面,RN和H5我们不需要打包,之前的做法是直接在 app.config.js 中做判断即可。现在taro3.2.0-beta.1不支持这种写法。 目前我们尝试使用 babel-plugin-transform-inline-environment-variables 来解决了这个问题,实际并没作用。 |
你在群里反馈过这个问题吧, 实际上是可以读到的,而你说的一个貌似是 require 另一个 config 报错的问题 |
@tourze sass alias 的问题我优先支持的 scss importer 这种解决方案 |
好,我一起看下。 |
scss不支持别名,我暂时改了resolveStyle来解决:
|
例如:
这种样式,最终会转换成:
能否在转译时自动转换为: borderBottomWidth / borderBottomStyle / borderBottomColor ? 这样做兼容的话,会容易很多。 |
要怎么才能够构建一个「 package.json: "script": {
"build:rn": "npx taro build --type rn",
"dev:rn": "npm run build:rn -- --watch"
}
尝试在控制台执行 ➜ erp-mp-v3.2 git:(feature/v0.4.0-taro-v3.1.1-upgrade-to-3.2.0-beta.0-with-react-native) ✗ NODE_ENV=development npx taro build --type rn --platform android
👽 Taro v3.2.0-beta.0
Tips: 预览模式生成的文件较大,设置 NODE_ENV 为 production 可以开启压缩。
Example:
$ NODE_ENV=production taro build --type rn --watch
Welcome to React Native!
Learn once, write anywhere 因为代码中有依赖于 const isProduction = process.env.NODE_ENV === 'production';
export default {
// ...
'/api': {
target: `https://${isProduction ? '' : 'test-'}api.domain.com`,
}
} 目前的做法是,打测试包的时候,手动改写相关的代码。 |
@shinken008 这个已经定义了,在 > NODE_ENV=development npx taro build --type rn --platform android --reset-cache
👽 Taro v3.2.0-beta.0
Tips: 预览模式生成的文件较大,设置 NODE_ENV 为 production 可以开启压缩。
Example:
$ NODE_ENV=production taro build --type rn --watch
warning: the transform cache was reset.
Welcome to React Native!
Learn once, write anywhere
transform[stdout]: 启动 样式文件处理开始 src/app.scss
... 但是最终的 var __BUNDLE_START_TIME__=this.nativePerformanceNow?nativePerformanceNow():Date.now(),__DEV__=false,process=this.process||{};process.env=process.env||{};process.env.NODE_ENV=process.env.NODE_ENV||"production";
!(function(r){"use strict";r.__r=o,r.__d=function(r,i,n){if(null!=e[i])return;var o={dependencyMap:n,factory:r,hasError:!1,importedAll:t,importedDefault:t,isInitialized:!1,publicModule:{exports:{}}};e[i]=o}... |
@yangqi1024 换成最新版的试试 |
3.2.0-beta.4 更新内容
|
我实在不建议taro现在就冒险进入React Native的坑 |
吵来吵去,生活得继续。 拥抱变化。Taro 之前版本做过支持,Taro 3 一直没做支持而已。 |
正式版已发布,后续有问题可提供issue反馈。 |
3.2.10版本怎么去掉RN相关的包,实在不需要RN的包 |
|
基于Taro写了一个组件库,有的组件使用index.rn.tsx作为平台区分入口,但是通过npm依赖后,发现项目中Rn并没有按照index.rn.tsx去加载,加载的依旧是index.tsx,导致编译报错,请问有解决方案吗 |
|
问卷调查及案例搜集
Taro 支持 React Native 即将发布正式版本,为了更好的提供技术支持,帮助更多的开发者提供开发效率,改善开发体验。希望更多的开发者能够积极反馈,同时也希望大家提供案例,共同繁荣 Taro 的生态。
优秀案例和第三方库征集
开发者调试 app
相关资料链接
分享资料
参考示例
新版本特性一览
如何开始
新仓库启动 bundler
原3.x仓库启动 bundler
低版本仓库
请先参照升级指南,升级至 3.x 版本,再参照上述步骤
启动APP
新版本壳工程对应地址为 https://github.com/NervJS/taro-native-shell/tree/0.63.2
Android debug包下载
版本发布
壳工程更新
常见问题
一些编译配置修改了没有生效
metro 打包transformer会有缓存加速,可以在根目录下添加文件
metro.config.js
或启动时增加
--reset-cache
。(3.2.0-canary.2增加)调试完成后可以关闭,遇到此类问题,请在issue内告知。
UnhandledPromiseRejectionWarning: Error:缺少页面
@tarojs/taro-rn
@tarojs/rn-runner
被安装为 2.x 版本。修改下package.json,重新安装下。缺少RN基本配置
忽略,或在
config/index.js
加配置rn:{}
安卓打包
./gradlew assembleRelease
报错Execution failed for task ':app:mergeExtDexRelease'.
已修复,更新壳工程
error Couldn't find any versions for "@tarojs/components" that matches "3.2.0-beta.1"
此类问题是因为npm镜像源还未更新,可切换下源,修改根目录的.npmrc文件。通过taro init 创建的项目默认源为淘宝源。
build:rn 报错
打包时未设置对应平台
The text was updated successfully, but these errors were encountered: