Skip to content

Commit 1455aad

Browse files
authored
fix(element-plus): get esm package version, closes #194 (#232)
1 parent 96a4137 commit 1455aad

File tree

2 files changed

+31
-13
lines changed

2 files changed

+31
-13
lines changed

src/core/resolvers/element-plus.ts

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -140,25 +140,32 @@ function resolveDirective(name: string, options: ElementPlusResolverOptionsResol
140140
export function ElementPlusResolver(
141141
options: ElementPlusResolverOptions = {},
142142
): ComponentResolver[] {
143-
const optionsResolved: ElementPlusResolverOptionsResolved = {
144-
ssr: false,
145-
version: getPkgVersion('element-plus', '1.1.0-beta.21'),
146-
importStyle: 'css',
147-
directives: true,
148-
...options,
143+
let optionsResolved: ElementPlusResolverOptionsResolved | undefined
144+
145+
async function resolveOptions() {
146+
if (optionsResolved)
147+
return optionsResolved
148+
optionsResolved = {
149+
ssr: false,
150+
version: await getPkgVersion('element-plus', '1.1.0-beta.21'),
151+
importStyle: 'css',
152+
directives: true,
153+
...options,
154+
}
155+
return optionsResolved
149156
}
150157

151158
return [
152159
{
153160
type: 'component',
154-
resolve: (name: string) => {
155-
return resolveComponent(name, optionsResolved)
161+
resolve: async(name: string) => {
162+
return resolveComponent(name, await resolveOptions())
156163
},
157164
},
158165
{
159166
type: 'directive',
160-
resolve: (name: string) => {
161-
return resolveDirective(name, optionsResolved)
167+
resolve: async(name: string) => {
168+
return resolveDirective(name, await resolveOptions())
162169
},
163170
},
164171
]

src/core/utils.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
import { parse } from 'path'
2+
import fs from 'fs'
23
import minimatch from 'minimatch'
34
import resolve from 'resolve'
45
import { ResolvedConfig } from 'vite'
56
import { slash, toArray } from '@antfu/utils'
7+
import {
8+
isPackageExists,
9+
getPackageInfo,
10+
} from 'local-pkg'
611
import { ComponentInfo, ResolvedOptions, ImportInfo } from '../types'
712
import { Context } from './context'
813
import { DISABLE_COMMENT } from './constants'
@@ -146,10 +151,16 @@ export function resolveAlias(filepath: string, alias: ResolvedConfig['resolve'][
146151
return result
147152
}
148153

149-
export function getPkgVersion(pkgName: string, defaultVersion: string): string {
154+
export async function getPkgVersion(pkgName: string, defaultVersion: string): Promise<string> {
150155
try {
151-
/* eslint-disable @typescript-eslint/no-var-requires */
152-
return require(`${pkgName}/package.json`).version
156+
const isExist = isPackageExists(pkgName)
157+
if (isExist) {
158+
const pkg = await getPackageInfo(pkgName)
159+
return pkg?.version ?? defaultVersion
160+
}
161+
else {
162+
return defaultVersion
163+
}
153164
}
154165
catch (err) {
155166
console.error(err)

0 commit comments

Comments
 (0)