perf(externalizeDepsPlugin): use cached package data to improve performance
This commit is contained in:
parent
db1128089a
commit
0c98f33573
|
@ -1,6 +1,5 @@
|
|||
import path from 'node:path'
|
||||
import { createRequire } from 'node:module'
|
||||
import { type Plugin, mergeConfig } from 'vite'
|
||||
import { loadPackageData } from '../utils'
|
||||
|
||||
export interface ExternalOptions {
|
||||
exclude?: string[]
|
||||
|
@ -13,9 +12,7 @@ export interface ExternalOptions {
|
|||
export function externalizeDepsPlugin(options: ExternalOptions = {}): Plugin | null {
|
||||
const { exclude = [], include = [] } = options
|
||||
|
||||
const packagePath = path.resolve(process.cwd(), 'package.json')
|
||||
const require = createRequire(import.meta.url)
|
||||
const pkg = require(packagePath)
|
||||
const pkg = loadPackageData() || {}
|
||||
let deps = Object.keys(pkg.dependencies || {})
|
||||
|
||||
if (include.length) {
|
||||
|
|
|
@ -53,6 +53,7 @@ export function loadEnv(
|
|||
interface PackageData {
|
||||
main?: string
|
||||
type?: 'module' | 'commonjs'
|
||||
dependencies?: Record<string, string>
|
||||
}
|
||||
|
||||
let packageCached: PackageData | null = null
|
||||
|
@ -65,7 +66,8 @@ export function loadPackageData(root = process.cwd()): PackageData | null {
|
|||
const data = _require(pkg)
|
||||
packageCached = {
|
||||
main: data.main,
|
||||
type: data.type
|
||||
type: data.type,
|
||||
dependencies: data.dependencies
|
||||
}
|
||||
return packageCached
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue