Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

我尝试了 vite 的 monorepo 工程化 #2

Open
biggerstar opened this issue Jun 10, 2024 · 2 comments
Open

我尝试了 vite 的 monorepo 工程化 #2

biggerstar opened this issue Jun 10, 2024 · 2 comments

Comments

@biggerstar
Copy link

尤大大您好,因为现在 monorepo 工程化的需求日益增长
我便简单尝试了针对 vite 的 monorepo 工程化,
项目地址 vite-run
自己的多个项目也是使用该库进行开发
该项目目前还有很多不足,也有很多可以优化的空间
如果您认可该项目,或者您有更好的建议, 我可以投入更多时间去开发完善, 完善vite 社区 😊

@biggerstar
Copy link
Author

工具增加了 packages, targets, baseconfig 三个配置项, 并且支持 vite 所有的配置
该工具目前有以下重要特性:

  • 对 vite 配置进行 原子化, 可以将vite原有的配置分割成不同大小的块,并且可以在一个 viterun.config 文件中对所有子包进行配置, 哪个包需要某个配置引入该原子就行,极大简化重复配置
  • 依托 vite 原生功能进行支持 HMR
  • 可以在 resolve. alias 统一使用每个包 @ 别名配置
       export default defineViteRunConfig({
           baseConfig: (options)=> {      //   options 保存子包信息和路径
              return {
                resolve: {
                   alias: {
                       // 所有包都可以直接使用 @ 引入`自身` 包的模块, 如果 ts 工程需要 tsconfig 中配置 path
                      "@": resolve(options.packagePath, 'src'),   
                       // 任意深度的包引入,对所有子包生效,直接指向 ts 文件, 同时类型提示需要子包中的  tsconfig 配合,该种方式甚至可以考虑抛弃  pnpm 的 workspace
                      "@app1": resolve('packages/app1/src')
                   }
                }
              }
           }
        })

@yyx990803
Copy link
Member

有点意思,我研究研究

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants