我们在开发微信支付插件的时候,发现微信支付功能页使用require引入非functional-pages 目录中的文件时会在vConsole里报错误,但是不影响插件调用require的文件执行。
错误截图如下:
查看官方网站的文档上面给的说明是:
注意:功能页函数不应 require
其他非 functional-pages
目录中的文件,其他非 functional-pages
目录中的文件也不应 require
这个目录中的文件。这样的 require
调用在未来将不被支持。
这个目录和文件应当被放置在插件所有者小程序代码中(而非插件代码中),它是插件所有者小程序的一部分(而非插件的一部分)。 如果需要新增或更改这段代码,需要发布插件所有者小程序,才能在正式版中生效;需要重新预览插件所有者小程序,才能在开发版中生效。
想问一下,我们用require引入非functional-pages 目录中的文件是否需要修改,如果都把逻辑放到functional-pages目录中,那我们就有两套一样的支付逻辑文件需要维护
是的,主要原因是独立分包,如果功能页配置在独立分包里( functionalPage: independent: true 的写法)的话,functional-page 目录相当于一个独立分包,独立分包和主包是没法相互引用的,所以才会有这个限制;现在不影响正常执行是因为目前还兼容功能页放在主包中( functionalPage: true 的写法),但未来会移除,所以才有这个告警
那是不是需要把支付的逻辑都拷贝到functional-page里吗?这样就相当于维护了两套相同的代码