Blame view

Yi.Vben5.Vue3/internal/node-utils/src/monorepo.ts 970 Bytes
515fceeb   “wangming”   框架初始化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  import { dirname } from 'node:path';
  
  import {
    getPackages as getPackagesFunc,
    getPackagesSync as getPackagesSyncFunc,
  } from '@manypkg/get-packages';
  import { findUpSync } from 'find-up';
  
  /**
   * 查找大仓的根目录
   * @param cwd
   */
  function findMonorepoRoot(cwd: string = process.cwd()) {
    const lockFile = findUpSync('pnpm-lock.yaml', {
      cwd,
      type: 'file',
    });
    return dirname(lockFile || '');
  }
  
  /**
   * 获取大仓的所有包
   */
  function getPackagesSync() {
    const root = findMonorepoRoot();
    return getPackagesSyncFunc(root);
  }
  
  /**
   * 获取大仓的所有包
   */
  async function getPackages() {
    const root = findMonorepoRoot();
  
    return await getPackagesFunc(root);
  }
  
  /**
   * 获取大仓指定的包
   */
  async function getPackage(pkgName: string) {
    const { packages } = await getPackages();
    return packages.find((pkg) => pkg.packageJson.name === pkgName);
  }
  
  export { findMonorepoRoot, getPackage, getPackages, getPackagesSync };