alita icon indicating copy to clipboard operation
alita copied to clipboard

一套把React Native代码转换成微信小程序代码的转换引擎工具。我们不造轮子,不发明新框架,只是提供工具把RN扩展到微信小程序端。

Results 21 alita issues
Sort by recently updated
recently updated
newest added

运行alita --dev 后,生成小程序,微信开发者工具打开后报错 ``` 页面【npm/@areslabs/wx-react-native/wxComponents/WXFlatList/index]错误: Error: module "npm/@areslabs/wx-react-native/wxComponents/WXFlatList/index.js" is not defined at require (VM40 WAService.js:2) at :90:9 at doWhenAllScriptLoaded (appservice?t=1607136085637:2593) at HTMLScriptElement.scriptLoaded (appservice?t=1607136085637:2613) at HTMLScriptElement.script.onload (appservice?t=1607136085637:2621) ```

app@bogon HelloWorldRN % alita 配置文件路径: /Users/app/Downloads/HelloWorldRN/alita.config.js 入口文件:/Users/app/Downloads/HelloWorldRN/src/index.js 输出目录: /Users/app/Downloads/HelloWorldRN/wx-dist 开始处理:/src/index.js ... 处理完成:/src/index.js ./src/index.js Module build failed (from ./node_modules/@areslabs/alita-core/node_modules/babel-loader/lib/index.js): TypeError: /Users/app/Downloads/HelloWorldRN/src/index.js: pass.get(...) is not a function at Object.post (/Users/app/Downloads/HelloWorldRN/node_modules/@areslabs/babel-plugin-alitamisc/dist/index.js:101:47) at buildElementCall...

Alita尚无计划在短期内支持Hook, 不得不承认React Hook是很棒的API,但是由于Alita在内部使用的RN版本是0.55.4, React版本是16.3, 对Hook的需要尚不强烈,所以Hook短期应该不会支持。

discussion

```shell npx react-native init WemallApp && alita init WemallApp --typescript ``` 初始化完成后, 运行android, app打开时报错 ``` AppContainer@http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:67605:22 [Thu Jul 09 2020 16:50:55.257] ERROR TypeError: undefined is not an object (evaluating '_this.view._component.measureInWindow')...

本pr是参照taro来实现hooks转换,详细测试用例可查看:fixtures/hooks。 然后在实现hooks的转换,发现React.creatContext、React.memo不支持,所以就顺手也支持下拉。

`import { Provider } from 'react-redux' render() { return {getRouter()} } ` 构建的时候出现 错误 **搜索路径失败!** `TypeError: Cannot read property 'Provider' of undefined`

alita 在JSX碰到 {} 这种语法块,会生成一块动态化模板片段,即: ``` {{d}} {{item}} ``` 大多数情况下,上面动态化模板会命中 ``, 所以可以针对这种情况,做下静态解析优化,如果在静态解析就知道 {} 会转换为 ``,则直接生成,就不需要生成上面的动态化模板,从而减少包大小。