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

taro@2.0.6 addChunkPages问题 #5645

Closed
4 tasks done
Super-Bin opened this issue Mar 9, 2020 · 18 comments
Closed
4 tasks done

taro@2.0.6 addChunkPages问题 #5645

Super-Bin opened this issue Mar 9, 2020 · 18 comments
Assignees

Comments

@Super-Bin
Copy link

问题描述

由于echart图表库太大,把该库放在子包中,并配置了webpack从common.js中分离,分离出的js文件放在子包中,并且只有子包中的页面使用了echart组件。但在真机中报错,找不到组件

Component is not found in path "subPackage/components/ec-canvas/ec-canvas" (using by "subPackage/pages/index/index");

在taro2.0.5中:

  • 在微信开发工具中,在分包中能100%正常使用组件
  • 在真机上100%存在该问题

在taro2.0.6中:

  • 在微信开发工具中,偶尔也会出现找不到控件的情况
  • 在真机上100%存在该问题

复现步骤

下面提供了demo,首页 点击 "跳转子包"

期望行为

子包中的页面,能正常使用echart图表库

报错信息

WX20200309-154857

系统信息

Taro CLI 2.0.6 environment info:
System:
OS: macOS 10.14.4
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.16.0 - ~/.nvm/versions/node/v10.16.0/bin/node
Yarn: 1.16.0 - ~/.nvm/versions/node/v10.16.0/bin/yarn
npm: 6.9.0 - ~/.nvm/versions/node/v10.16.0/bin/npm
npmPackages:
@tarojs/components: 2.0.6 => 2.0.6
@tarojs/components-qa: 2.0.6 => 2.0.6
@tarojs/mini-runner: 2.0.6 => 2.0.6
@tarojs/redux: 2.0.6 => 2.0.6
@tarojs/redux-h5: 2.0.6 => 2.0.6
@tarojs/router: 2.0.6 => 2.0.6
@tarojs/taro: 2.0.6 => 2.0.6
@tarojs/taro-alipay: 2.0.6 => 2.0.6
@tarojs/taro-h5: 2.0.6 => 2.0.6
@tarojs/taro-qq: 2.0.6 => 2.0.6
@tarojs/taro-quickapp: 2.0.6 => 2.0.6
@tarojs/taro-swan: 2.0.6 => 2.0.6
@tarojs/taro-tt: 2.0.6 => 2.0.6
@tarojs/taro-weapp: 2.0.6 => 2.0.6
@tarojs/webpack-runner: 2.0.6 => 2.0.6
eslint-config-taro: 2.0.6 => 2.0.6
eslint-plugin-taro: 2.0.6 => 2.0.6
nerv-devtools: ^1.5.5 => 1.5.6
nervjs: ^1.5.5 => 1.5.6
stylelint-config-taro-rn: 2.0.6 => 2.0.6
stylelint-taro-rn: 2.0.6 => 2.0.6

补充信息

demo:
testApp.zip

@taro-bot
Copy link

taro-bot bot commented Mar 9, 2020

CC @luckyadam

@taro-bot
Copy link

taro-bot bot commented Mar 9, 2020

欢迎提交 Issue~

如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏

如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。

Good luck and happy coding~

@luckyadam
Copy link
Member

非常尴尬 fcaefce 这个 commit 只处理了 Taro 组件的情况,没有考虑到原生组件
image

你可以改一下编译后的代码,在子组件里引用一下抽出来的公共文件,后续待 Taro 解决

@cyq333
Copy link

cyq333 commented Apr 16, 2020

非常尴尬 fcaefce 这个 commit 只处理了 Taro 组件的情况,没有考虑到原生组件
image

你可以改一下编译后的代码,在子组件里引用一下抽出来的公共文件,后续待 Taro 解决

原生组件这个问题现在解决了吗?

@Super-Bin
Copy link
Author

@cyq333 他给的方案可行,就没再去跟进这个问题,等到后面有时间了再看

@wuclown
Copy link

wuclown commented May 18, 2020

每次启动,都要手动添加引入,现在有什么别的解决办法吗。

@Super-Bin
Copy link
Author

@wuclown 不清楚呢,要不再问一下他们的人有没有解决

@Alvin1992
Copy link

@wuclown 不清楚呢,要不再问一下他们的人有没有解决

请问你现在采取的还是这样的方式吗?这样的话在开发的时候的就很麻烦

@cheneywan
Copy link

同问,这个问题现在有进展么?

@Super-Bin
Copy link
Author

@Alvin1992 @cheneywan 是的,taro2.x的版本还是使用这个方法,不知道taro3.0有没有修复

@qinxiangling
Copy link

请问这个问题解决了吗,目前也越到了这个问题,能否请教一下解决方案

@Super-Bin
Copy link
Author

@qinxiangling 上面给出了临时方案,你可以改一下编译后的代码,在子组件里引用一下抽出来的公共文件,后续待 Taro 解决

@qinxiangling
Copy link

@qinxiangling 上面给出了临时方案,你可以改一下编译后的代码,在子组件里引用一下抽出来的公共文件,后续待 Taro 解决

我配置后的引入模块是正确的模块名是对的,但是并没有从common.js抽离出来
image
image

@Super-Bin
Copy link
Author

@qinxiangling 要不看一下我提交给他们的demo,看里面的配置是不是跟我一样,已经不太记得怎么配置的了,已经很久没弄这个taro的东西了,实在不行就在群里咨询一下

@qinxiangling
Copy link

@qinxiangling 要不看一下我提交给他们的demo,看里面的配置是不是跟我一样,已经不太记得怎么配置的了,已经很久没弄这个taro的东西了,实在不行就在群里咨询一下

好的,就是附件里的testApp.zip吗,十分感谢

@findxc
Copy link

findxc commented Apr 7, 2021

@qinxiangling 请问没有从common.js抽离出来的问题你是怎么解决的呢?我也遇到了 ...

@findxc
Copy link

findxc commented Apr 7, 2021

呃,我找到原因了,因为我的 webpackChain 是写在 config/index.js 的,然后我项目中 config/prod.js 中也有这个配置,就被覆盖了,所以就没有抽取出来 ...

@findxc
Copy link

findxc commented Apr 8, 2021

可以使用 webpack 插件 banner 来在文件开头加上 require('../../echartsChunk'),

在 webpackChain 函数里面补充如下代码即可:

chain.plugin('banner').use(new webpack.BannerPlugin({
  banner: "require('../../echartsChunk'),",
  raw: true,
  include: /chart[\\/]Echarts[\\/]ec-canvas[\\/]ec-canvas.js/,   // 这里写你自己项目对应的文件
}), [])

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants