Blame view

天文台pc/tianwentai-ui/node_modules/vite/bin/vite.js 2.48 KB
bc518174   王天杨   提交两个项目文件
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
  #!/usr/bin/env node
  import { performance } from 'node:perf_hooks'
  import module from 'node:module'
  
  if (!import.meta.url.includes('node_modules')) {
    try {
      // only available as dev dependency
      await import('source-map-support').then((r) => r.default.install())
    } catch {}
  
    process.on('unhandledRejection', (err) => {
      throw new Error('UNHANDLED PROMISE REJECTION', { cause: err })
    })
  }
  
  global.__vite_start_time = performance.now()
  
  // check debug mode first before requiring the CLI.
  const debugIndex = process.argv.findIndex((arg) => /^(?:-d|--debug)$/.test(arg))
  const filterIndex = process.argv.findIndex((arg) =>
    /^(?:-f|--filter)$/.test(arg),
  )
  const profileIndex = process.argv.indexOf('--profile')
  
  if (debugIndex > 0) {
    let value = process.argv[debugIndex + 1]
    if (!value || value.startsWith('-')) {
      value = 'vite:*'
    } else {
      // support debugging multiple flags with comma-separated list
      value = value
        .split(',')
        .map((v) => `vite:${v}`)
        .join(',')
    }
    process.env.DEBUG = `${
      process.env.DEBUG ? process.env.DEBUG + ',' : ''
    }${value}`
  
    if (filterIndex > 0) {
      const filter = process.argv[filterIndex + 1]
      if (filter && !filter.startsWith('-')) {
        process.env.VITE_DEBUG_FILTER = filter
      }
    }
  }
  
  function start() {
    try {
      // eslint-disable-next-line n/no-unsupported-features/node-builtins -- it is supported in Node 22.8.0+ and only called if it exists
      module.enableCompileCache?.()
      // flush the cache after 10s because the cache is not flushed until process end
      // for dev server, the cache is never flushed unless manually flushed because the process.exit is called
      // also flushing the cache in SIGINT handler seems to cause the process to hang
      setTimeout(() => {
        try {
          // eslint-disable-next-line n/no-unsupported-features/node-builtins -- it is supported in Node 22.12.0+ and only called if it exists
          module.flushCompileCache?.()
        } catch {}
      }, 10 * 1000).unref()
    } catch {}
    return import('../dist/node/cli.js')
  }
  
  if (profileIndex > 0) {
    process.argv.splice(profileIndex, 1)
    const next = process.argv[profileIndex]
    if (next && !next.startsWith('-')) {
      process.argv.splice(profileIndex, 1)
    }
    const inspector = await import('node:inspector').then((r) => r.default)
    const session = (global.__vite_profile_session = new inspector.Session())
    session.connect()
    session.post('Profiler.enable', () => {
      session.post('Profiler.start', start)
    })
  } else {
    start()
  }