You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.6 KiB
61 lines
1.6 KiB
#!/usr/bin/env node |
|
const { performance } = require('perf_hooks') |
|
|
|
if (!__dirname.includes('node_modules')) { |
|
try { |
|
// only available as dev dependency |
|
require('source-map-support').install() |
|
} catch (e) {} |
|
} |
|
|
|
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() { |
|
require('../dist/node/cli') |
|
} |
|
|
|
if (profileIndex > 0) { |
|
process.argv.splice(profileIndex, 1) |
|
const next = process.argv[profileIndex] |
|
if (next && !next.startsWith('-')) { |
|
process.argv.splice(profileIndex, 1) |
|
} |
|
const inspector = require('inspector') |
|
const session = (global.__vite_profile_session = new inspector.Session()) |
|
session.connect() |
|
session.post('Profiler.enable', () => { |
|
session.post('Profiler.start', start) |
|
}) |
|
} else { |
|
start() |
|
}
|
|
|