Skip to content
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

希望 Taro3.0 的微信小程序端 page 可以不依赖 app.js 也能正常运行 #7191

Closed
rottenpen opened this issue Jul 29, 2020 · 6 comments
Labels
enhancement New feature or request
Milestone

Comments

@rottenpen
Copy link
Contributor

这个特性解决了什么问题?

需求

我这边有一个小程序微前端的方案。通过我写的 webpack plugin 把不同框架的小程序包组合起来使用。

  • 主包部分是原生(或者不同的库)写的代码。分包部分是 taro 打包后的代码。在 taro 1.x 版本中,由于 page 部分是不依赖 app.js 的。所以在分包 app.js 部分不添加业务逻辑的情况下,这套小程序微前端方案是能正常运行的。但是在 2.x 版本开始,taro 页面是依赖 app.js 引入依赖才能正常使用的。
  • 目前尝试用 splitChunk 来抽离部分代码出来,供 page 调用会报重复注册 page 的错。怀疑是在不知道的地方 webpackJson 被重复调用了。

希望 Taro 3.0 的微信小程序端 page 可以不依赖 app.js 也能正常运行。

解决 的问题

让 taro 各个不同版本的代码可以以分包的形式一起运行。实现小程序端的微前端。

这个 API 长什么样?

希望能提供一套抽离 app.js 里 vendor 的方案,让 page 调用这部分依赖就能正常运行。
或者在 config/index.js 里能直接配置。

@taro-bot2 taro-bot2 bot added the enhancement New feature or request label Jul 29, 2020
@shinken008
Copy link
Collaborator

app.js 抽离 react 到 vendor 在 splitChunk 里面重写配置就好了,3.0 依赖 app.js 目前我想到的方案是针对不同端,提供多个入口文件,每个场景下 app.js 都要执行。相当于分包和插件的话会有独立的runtime。具体pr:#7192

@rottenpen
Copy link
Contributor Author

@shinken008 但是像你的 pr 这样改 page 的注册好像还是要依赖 app.js 才能把内容注入 wx['webpackjson'] 里吧

@shinken008
Copy link
Collaborator

对,3.0的机制各个页面都依赖 app.js 起的实例,需要执行 app.js。

require("./runtime");
require("./common");
require("./vendors");
require("./taro");

另外app.js 里的这几个chunk都要执行。

@rottenpen
Copy link
Contributor Author

@shinken008 主要我现在的需求是想直接不依赖 app.js...看来还是要先搞清楚app.js里面内容的原理才行

@shinken008
Copy link
Collaborator

哈哈,你可以去看下编译后的 app.js,其实不想要的话应该可以用 webpack 打包把 app.js 里的必要的东西移到 common 或者 vendor 里面

@Chen-jj
Copy link
Contributor

Chen-jj commented Jan 25, 2021

@Chen-jj Chen-jj closed this as completed Jan 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants