每天只睡23h
每天只睡23h
  • 发布:2022-08-30 12:01
  • 更新:2024-12-04 17:12
  • 阅读:1510

如何使用lerna管理uni-app(vue3+ts)项目

分类:uni-app

如题,我的场景是通过lerna这种monorepo模式管理多个小程序,这些小程序在相当一部分逻辑上存在相同的逻辑和组件。
以前vue2版本时我是通过npm私有包实现,并通过vue.config.js设置让包也参与编译过程(因为有条件编译),但是这样在TS项目上没有相关的类型推断。

目前在我的测试项目中编译H5环境是正常的,但是编译小程序就会报以下错:

Invalid pattern "../../common/MyComponent.js" for "output.chunkFileNames", patterns can be neither absolute nor relative paths. If you want your files to be stored in a subdirectory, write its name without a leading slash like this: subdirectory/pattern.  

这里主要是跨文件引入了一个vue单文件组件,在测试中引入ts或者js文件是正常的。
实在不甚求解,有没有大佬帮忙解答一下。

2022-08-30 12:01 负责人:无 分享
已邀请:
3***@qq.com

3***@qq.com

我是用 pnpm + mono 方式开发,commonlib 是组件库项目,demo 是测试项目,两个是平级的项目
commonlib 项目作为运行时依赖安装到 demo 项目中
然后在demo项目中就可以用 easycom 的方式引入 commonlib 中的组件(和引入 uni-ui 的方式相同)
也可以直接通过 import sss from '@mono/commonlib/src/components/zc-xxx/zc-xxx.vue' 这种方式引入组件进行使用

以上是我在 pnpm + mono 中的实践,不知道 lerna 是否类似,希望对老铁有所帮助

  • 每天只睡23h (作者)

    我现在也采用和你相同的模式来开发项目,但是现在也出现了其他的问题:例如我现在把store和组件都拆分成2个package,组件包和项目都引用这个store,然后在编译至小程序平台时,这个store包被构建了2次,导致我的store状态并无法共享,你这边有解决办法吗?

    2022-11-19 10:57

  • 每天只睡23h (作者)

    或者说方便的话能不能上传一份demo到github让我学习一下,万分感谢

    2022-11-19 10:59

  • 3***@qq.com

    回复 每天只睡23h: 我是使用 pinia, 在业务包调用 app.use(createPinia()); 在组件库包 defineStore('lib', ()=>{}); 最后在业务包通过别名的方式调用 ex.import LibStore from '@lib/pinia/libStore.ts' 的方式引用,不过我没涉及到组件库包引用 store 包的情况,不知道对你的情况是否有帮助

    2022-12-12 18:27

  • mcq

    回复 3***@qq.com: 可以留一个联系方式吗?关于此问题想请教一下

    2023-07-29 11:23

CODE_XU

CODE_XU

试一下以依赖的方式引入能否正常编译

  • 每天只睡23h (作者)

    你好,我这里就是按照依赖的方式引入的,只是这个依赖的子包是未经编译的,因为正常要结合当前项目的编译指令进行条件编译

    2022-08-30 12:13

  • CODE_XU

    回复 每天只睡23h: 看一下这条帖子能否帮助你 https://ask.dcloud.net.cn/question/111451

    2022-08-30 12:19

  • 每天只睡23h (作者)

    回复 CODE_XU: 这条帖我已经看见过了,但是这个的问题和我还不太一致,他是依赖找不到,我是依赖里的vue组件解析错误

    2022-08-30 12:27

每天只睡23h

每天只睡23h (作者) - 大前端开发的一名菜鸟

我通过修改node_modules/@dcloudio/uni-mp-vite/dist/plugin/index.js源码文件中这一段方法,就能够正常编译成功,请问有其他方式进行配置修复吗?

这个循环中打印filename,结果如下:

pages/index/index  
components/MyComponent  
../../common/MyComponent

第三条跨包引入的组件出现一个相对路径,我把前置的../../清除就正常打包了

3***@qq.com

3***@qq.com

遇到了一样的问题,我是用pnpm mono + easycom 的方式

  • x***@xiopmh.com

    有demo吗 借鉴一下 我们最近也正在改造

    2023-02-21 19:46

社交软件联盟

社交软件联盟 - 免费的社交软件开发框架和运营支持合作联盟

老哥,可以加个微嘛,想问下你是怎么解决的,qky20001212, 这是我的微信谢谢

还晚睡吗

还晚睡吗

解决了吗?

要回复问题请先登录注册