Closed cubxx closed 3 months ago
bun-demo.zip 这是一个使用bun的最小复现,v1.2.1
你给的 demo 我用 pnpm 可以正常 build
你的 demo 是用的 create-vue-mini v1.2.1,用 bun 或 pnpm 都可以正常 build
将 build.js 升级到 create-vue-mini v1.2.2 之后,pnpm 可以正常 build,bun 会报错。因为它们 workspaces 的实现不同,bun 会将所有 node_modules 提升到最顶部。
如果可以,你可以先换成 pnpm
create-vue-mini v1.2.3 已修复。
最后建议为 build.js 文件加上版本号注释,方便提 issue 时附上版本号
好提议,昨天忘了。从下个版本开始加上。
最后建议为 build.js 文件加上版本号注释,方便提 issue 时附上版本号
好提议,昨天忘了。从下个版本开始加上。
如果可以的话,感觉也可以附上最新版的文件链接,这样更新也方便些:
/**
* @version 1.2.3
* @see https://github.com/vue-mini/create-vue-mini/blob/main/template/typescript/build.js
*/
可能这个issue需要重开,v1.2.3无法resolve ts模块,也不能对ts模块进行打包。 在monorepo项目中,对其他子包(如:shared)打包的情况会很常见。
解决办法: 1)配置 resolve 插件识别 ts 扩展名,以及向 rollup 添加打包 ts 的插件。但可能引入更多潜在问题 2)先在 shared 子包中自行打包,生成 .js 文件。但会增加项目维护成本,而且无法监听文件变化
这是符合预期的,每个子包需要自行 build,这是 monorepo 的标准做法。
v1.2.1 my-monorepo/ ├── packages/ │ ├── vue-mini/ │ │ ├── package.json │ │ └── index.js │ ├── shared/ │ │ ├── package.json │ │ └── index.js ├── node_modules/ └── package.json
vue-mini 是我的小程序项目根目录,也是在这里执行小程序的打包 目前无法识别子包路径,rollup 找不到 'shared' 模块 而 v1.2.2 似乎也是默认从项目根目录下查找 node_modules 的,对于 Monorepo 项目这可能不太合适 但是 v1.2.1 可以从 ../../node_modules 查找 node 包,具体原因我没细看
我尝试用 vite 在其他子项目(比如web前端)中打包,发现 vite 可以自动识别 monorepo 子包,并正常打包
解决方案:
最后建议为 build.js 文件加上版本号注释,方便提 issue 时附上版本号