dcloudio / uni-app

A cross-platform framework using Vue.js
https://uniapp.dcloud.io
Apache License 2.0
39.74k stars 3.61k forks source link

小程序下import的编译问题 #4962

Open ziveen opened 1 month ago

ziveen commented 1 month ago

环境:

问题描述: 运行命令yarn dev:mp-weixin后,控制台会报错Charts.Charts is not a constructor.代码片段如下

相关代码

lib.js

 function Charts() {
  // do something
 }

 Charts.prototype.init = function() {}

 module.exports = Charts;

pages/index.vue

 <template>
      <view></view>
 </template>
 <script>
 import Charts from './lib'
 onLoad() {
   const charts = new Charts();
 }
 </script>

问题处理:

修改lib.js中的导出方式为export default Charts,问题就能正确处理。

分析

这个应该属于uni模块中vite的编译问题,我们项目上一个版本中使用HBUilderx编译无问题。

Otto-J commented 1 month ago

你的意思是自定义 js,你使用 cjs 的导出,功能有问题,改为 esm 导出是正常的对吗?你的上一个版本是那个版本,也是 alpha 吗

ziveen commented 1 month ago

上一个版本是指的使用Hbuilder运行的项目,现在的使用cli。

julytian commented 1 month ago

上一个版本是指的使用Hbuilder运行的项目,现在的使用cli。

试下使用@rollup/plugin-commonjs插件配合是否解决