NervJS / taro

开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/
https://docs.taro.zone/
Other
35.69k stars 4.8k forks source link

custom-wrapper 找不到 #12239

Open 123417316 opened 2 years ago

123417316 commented 2 years ago

相关平台

微信小程序

小程序基础库: 2.25.2 使用框架: Vue 3

复现步骤

Component is not found in path "custom-wrapper" (using by "pages/home/index"), Component is not found in path "comp" (using by "pages/home/index") 更新之后,所有页面都会报这个错

期望结果

不报错

实际结果

所有页面都会报这个错

环境信息

 Taro CLI 3.5.1 environment info:
    System:
      OS: Windows 10
    Binaries:
      Node: 16.13.1 - C:\Program Files\nodejs\node.EXE
      Yarn: 1.22.18 - C:\Users\CHu\AppData\Roaming\npm\yarn.CMD
      npm: 8.1.2 - C:\Program Files\nodejs\npm.CMD
Chen-jj commented 2 years ago

@123417316 麻烦提供一下 demo

comlejade commented 2 years ago

同问,我新建的项目,用的nutUI模板,还没开始用呢,先报俩错 image

Pentium286 commented 2 years ago

3.5.2 同样的问题

cloook commented 2 years ago

3.4.14 俺也一样

brickspert commented 2 years ago

求解,3.5.2 新初始化的项目,报这个错误

brickspert commented 2 years ago

在 index.config.ts 里面临时加了以下代码解决

  usingComponents: {
    'custom-wrapper': '/custom-wrapper',
  }
Virgil-N commented 2 years ago

我是react+hook也是新建的项目报错

Chen-jj commented 2 years ago

似乎是一个偶现的问题,需要区分是小程序本身的问题还是 Taro 的问题,请问一下各位:

  1. Webpack 版本
  2. 是否只有开发者工具会报错?
  3. 报错会否影响程序正常运行?
  4. 发生报错时,dist 目录下是否存在 custom-wrappercomp 组件对应的 js、json、wxml 文件?
  5. 发生报错的页面对应的 json 文件的 usingComponents 字段,是否正确配置了 custom-wrappercomp 组件?
  6. 重启开发者工具后报错会不会消失?
  7. 如果重启开发者工具后报错依旧,重新启动 Taro 编译后报错会不会消失?

此外,@brickspert 可以讲述一下是 Taro 编译时漏了什么东西,然后如何解决的吗?

在 index.config.ts 里面临时加了以下代码解决

  usingComponents: {
    'custom-wrapper': '/custom-wrapper',
  }
zhenzhenChange commented 2 years ago

刚才也遇到了,突然出现的问题,依赖版本没动过,应该不是Taro或者React的问题,然后我更新了一下开发者工具就好了。

Deain commented 2 years ago

@Chen-jj

1、只有开发者工具报警告; 2、报错地方的组件无法正常显示; 3、dist目录存在对应生成文件; 4、usingComponents正确配置了wrapper comp; 56、重启开发者工具、taro重编译、node_modules重装 后小概率解决(大概 1:10 )

引用第三方组件报错: https://github.com/AntmJS/vantui/issues/332#issue-1347470072

以下临时方案可以解决 在 index.config.ts 里面临时加了以下代码解决

  usingComponents: {
    'custom-wrapper': '/custom-wrapper',
  }

Originally posted by @brickspert in https://github.com/NervJS/taro/issues/12239#issuecomment-1214312079

Chen-jj commented 2 years ago

@Deain Webpack5 么?

重启开发者工具、taro重编译、node_modules重装 后小概率解决(大概 1:10 )

这是同时做的还是控制了变量?

Deain commented 2 years ago

@Deain Webpack5 么?

重启开发者工具、taro重编译、node_modules重装 后小概率解决(大概 1:10 )

这是同时做的还是控制了变量?

控制变量,因为一开始是好的,中间写着写着,某一次编译完后就报错了,就一个一个尝试的。 当然后面也同时一起处理过,还是没效果。 期间也尝试过升降级taro版本

webpack5、taro3.5.4/3.5.3

Chen-jj commented 2 years ago

@Deain Webpack5 么?

重启开发者工具、taro重编译、node_modules重装 后小概率解决(大概 1:10 )

这是同时做的还是控制了变量?

控制变量,因为一开始是好的,中间写着写着,某一次编译完后就报错了,就一个一个尝试的。 当然后面也同时一起处理过,还是没效果。 期间也尝试过升降级taro版本

webpack5、taro3.5.4/3.5.3

@Deain 找到 node_modules/@tarojs/service/dist/platform-plugin-base.js,把这一行注释试试:

image

怀疑是 Webpack5 的文件产物输出时机和小程序开发者工具 watch 机制的冲突,所以试试每次编译时不清空 dist 目录再看看。

Deain commented 2 years ago

@Deain Webpack5 么?

重启开发者工具、taro重编译、node_modules重装 后小概率解决(大概 1:10 )

这是同时做的还是控制了变量?

控制变量,因为一开始是好的,中间写着写着,某一次编译完后就报错了,就一个一个尝试的。 当然后面也同时一起处理过,还是没效果。 期间也尝试过升降级taro版本 webpack5、taro3.5.4/3.5.3

@Deain 找到 node_modules/@tarojs/service/dist/platform-plugin-base.js,把这一行注释试试:

image

怀疑是 Webpack5 的文件产物输出时机和小程序开发者工具 watch 机制的冲突,所以试试每次编译时不清空 dist 目录再看看。

尝试了几次,需要配合reinstall依赖的三方包,只有当第一次编译出来可以正常运行时,后面才没问题。 如果第一次编译出来还是那样的问题,就没办法

Deain commented 2 years ago

@Chen-jj 但是我发现,在config.ts中写的楼上的可用代码,哪怕路径乱写,都能够解决这个问题

usingComponents: {
   'custom-wrapper': '.././../../custom-wrapper',
}
Chen-jj commented 2 years ago

@Deain 哪个 config.ts ? 另外能发一下出错时的包吗

wjxforu commented 2 years ago

我也遇到了.
Taro: 3.5.4 webpack5 直接用cli选择的taro_hooks的template. 我发现有以下复现条件:

  1. 微信开发者工具上打开热重载
  2. npm run dev:weapp的时候, 也就是加上--watch

不管本身项目有没有配置hot:true, 都会有可能报错. 然后报错或者没报错, 热重载在ts文件上面都是不生效的.

image

githubCK commented 2 years ago

我也遇到了这个问题,ts文件修改第一次热重载能生效,第二次就不行;修改样式文件热重载功能没有问题

wjxforu commented 2 years ago

我也遇到了. Taro: 3.5.4 webpack5 直接用cli选择的taro_hooks的template. 我发现有以下复现条件:

  1. 微信开发者工具上打开热重载
  2. npm run dev:weapp的时候, 也就是加上--watch

不管本身项目有没有配置hot:true, 都会有可能报错. 然后报错或者没报错, 热重载在ts文件上面都是不生效的.

image

经过测试, 使用default模板也会出现该问题. 所以和taro hooks模板无关

Deain commented 2 years ago

@Deain 哪个 config.ts ? 另外能发一下出错时的包吗

app.config.ts , 跟包关系应该不大,因为在 app.config.ts 里面加了 usingComponents:{custom-wrapper} 就可以运行了

Chen-jj commented 2 years ago

我也遇到了. Taro: 3.5.4 webpack5 直接用cli选择的taro_hooks的template. 我发现有以下复现条件:

  1. 微信开发者工具上打开热重载
  2. npm run dev:weapp的时候, 也就是加上--watch

不管本身项目有没有配置hot:true, 都会有可能报错. 然后报错或者没报错, 热重载在ts文件上面都是不生效的.

image

@wjxforu 目前 Webpack5 不能开启开发者工具的热重载功能

wenlittleoil commented 1 year ago

我在使用taro开发微信小程序插件时,遇到了同样的问题,具体不知道是啥原因,尝试自己手动引入一下custom-wrapper组件解决了问题。custom-wrapper组件按照如下声明: import { CustomWrapper, } from '@tarojs/components'; export default CustomWrapper;

tutuxxx commented 1 year ago

image 我这边验证到是因为开了持久化缓存引起的,开启缓存后,第二次编译时产物中没有custom-wrapper相关的代码。解决方式: 1、关闭缓存 2、如上,页面index.config.ts中增加 usingComponents: { 'custom-wrapper': '/custom-wrapper', }

2792543106 commented 1 year ago

我试着终止终端运行,重新执行npm run dev,小程序重新编译一次,发现就没这个问题。

qiuziz commented 9 months ago

3.6.22也有 dev模式没有 但是build后 运行就会出现这个 小程序基础库2.33.0 但页面正常渲染 这个comp组件有什么用吗 去掉也没有影响?

Dumbliidore commented 7 months ago

taro4.0.0-beta 版本使用 vue3-pinia(Vue3 + Pinia 模板(https://pinia.esm.dev/))同样会报Component is not found in path "comp" (using by "pages/index/index")的错误