Tencent / wepy

小程序组件化开发框架
https://wepyjs.gitee.io/wepy-docs/
Other
22.5k stars 3.05k forks source link

引入第三方组件错误,这似乎是新版本的问题 #2499

Open RisenMyth opened 4 years ago

RisenMyth commented 4 years ago

Description

引入第三方组件会出现错误,原因是没有将组件所import的脚本编译到$vendor,目前我将 @wepy/cli 版本降回到 2.0.0-alpha.20 就没有问题了。

Environment

Reproduce

安装最新版本 @wepy/cli@nextwepy init standard demo创建新项目,并通过 npm i vant-weapp -S 安装第三方组件,在任意界面使用组件。

贴上我测试代码:

<template>
  <div>
    <van-button>测试按钮</van-button>
  </div>
</template>

<config>
{
  usingComponents: {
    'van-button': 'module:vant-weapp/dist/button/index'
  }
}
</config>

Relevant Code / Logs

// 这是在微信开发者工具里面的控制台报错
VM61 WAService.js:1 Uncaught Error: module "$vendor/vant-weapp/dist/common/component.js" is not defined
    at require (VM61 WAService.js:1)
    at VM61 WAService.js:1
    at index.js:3
    at require (VM61 WAService.js:1)
    at <anonymous>:20:7
    at HTMLScriptElement.scriptLoaded (appservice?t=1575980019504:1362)
    at HTMLScriptElement.script.onload (appservice?t=1575980019504:1374)
mikasayw commented 4 years ago

+1 看了报错是编译解析的时候并没有把vant的公共js打包进vendor 好像是wepy中core的小版本问题

lee88688 commented 4 years ago

cli 版本固定到2.0.0-alpha.20问题解决了,希望后续版本能够尽早修复这个问题。

chenhaizano commented 4 years ago

+1

我这 cli 版本固定到2.0.0-alpha.20也一样出现这个问题啊,是不是模板里其他引用包有改动?

neozhu commented 4 years ago

这个问题我倒是解决了,需要手动把vant组件的源代码dist目录下的文件copy到compoents目录下再import 进去就可以用了。 另外接下来我倒是很希望微信小程序的ajax请求能完全支持兼容目前流行的axios,自带wx.request虽然能用但确实不是很方便。希望再下个 版本能原生支持,因为vuex配合axios才是完美的组合。当然微信小程序云开发确实也非常不错

yokingma commented 4 years ago

+1 首次使用wepy,配置完毕引入vant, wepy: 2.0.0-alpha.24 @vant/weapp: 1.0.5 立马报错: module "$vendor/@vant/weapp/lib/common/component.js" is not defined 还没使用就掉坑了。 2.0.0-alpha.20 一样报错。

mikasayw commented 4 years ago

@Gcaufy 场景1: wepy-cli: 2.0.0-alpha.28 wepy:2.0.0-alpha.16 第三方组件编译解析时,有一部分未被打包进vendor 场景2: wepy-cli: 2.0.0-alpha.20 wepy:2.0.0-alpha.9 hooks报undefined. #2486

目前是很尴尬的局面

renpeng11 commented 4 years ago

无论是退到2.0.0-alpha.20还是退到官方文档上的2.0.0-alpha.14 ,连初始化项目都不行了,醉了。。。 wepy init standard myproj

RisenMyth commented 4 years ago

@renpeng11 通过 npm info wepy-cli确定一下版本

还有就是,现在我基本放弃使用框架开发微信小程序了,直接原生 哈哈

neozhu commented 4 years ago

确定一下

确实,wepy 出来的太晚了。还有就是所有国产开源项目都有短板就是官方文档太少,例子太少,更新就几乎没有。 原本wepy 组件化开发 整合vuex状态管理,本来应该是可以提高开发效率的,但结果却反而更慢。还有就是感觉微信小程序的js环境和普通html5 或是 ES6 也存在不兼容的地方,有些第三方的 npm 进来的库就是运行不起来。真希望这些问题能早日解决

lee88688 commented 4 years ago

我已经劝退了😂,最近换了remax.js使用react开发小程序实在是香啊。

neozhu commented 4 years ago

remax.js

我刚刚从angular 转 vue, 开始做微信小程序,现在难道又要学react , 现在做一些普通的手机端的延申应用我现在就推荐用微信小程序,不考虑支持百度,支付宝小程序。

lee88688 commented 4 years ago

@neozhu 我自己也是做vue开发的,react学起来很简单。其实可以考虑直接使用微信小程序的语法开发,我只是觉得他们的语法开发效率低用react会更高一些。

Gcaufy commented 4 years ago

编译的问题会在下一个版本中解决。

对于一些第三方组件编译出现问题时,可以考虑将其放到 static 目录下。 不需编译直接拷贝至输出目录

npm i @vant/weapp
cp -r node_modules/@vant/weapp ./static/@vant/weapp
Augly commented 4 years ago

下一个版本什么时候更新?

DavisYao88 commented 4 years ago

@Gcaufy 场景1: wepy-cli: 2.0.0-alpha.28 wepy:2.0.0-alpha.16 第三方组件编译解析时,有一部分未被打包进vendor 场景2: wepy-cli: 2.0.0-alpha.20 wepy:2.0.0-alpha.9 hooks报undefined. #2486

目前是很尴尬的局面

老铁没毛病,更新了旧的bug,造成新的bug