@@ -10,6 +10,11 @@ export interface ElementPlusResolverOptions {
10
10
*/
11
11
importStyle ?: boolean | 'css' | 'sass'
12
12
13
+ /**
14
+ * use commonjs lib & source css or scss for ssr
15
+ */
16
+ ssr ?: boolean
17
+
13
18
/**
14
19
* specify element-plus version to load style
15
20
*
@@ -48,13 +53,15 @@ function getSideEffectsLegacy(
48
53
}
49
54
50
55
function getSideEffects ( dirName : string , options : ElementPlusResolverOptions ) : SideEffectsInfo | undefined {
51
- const { importStyle = 'css' } = options
56
+ const { importStyle = 'css' , ssr } = options
57
+ const themeFolder = 'element-plus/theme-chalk'
58
+ const esComponentsFolder = 'element-plus/es/components'
52
59
53
60
if ( importStyle === 'sass' )
54
- return `element-plus/es/components /${ dirName } /style`
61
+ return ssr ? ` ${ themeFolder } /src/ ${ dirName } .scss` : ` ${ esComponentsFolder } /${ dirName } /style`
55
62
56
63
else if ( importStyle === true || importStyle === 'css' )
57
- return `element-plus/es/components /${ dirName } /style/css`
64
+ return ssr ? ` ${ themeFolder } /el- ${ dirName } .css` : ` ${ esComponentsFolder } /${ dirName } /style/css`
58
65
}
59
66
60
67
/**
@@ -73,6 +80,7 @@ export function ElementPlusResolver(
73
80
return ( name : string ) => {
74
81
if ( name . match ( / ^ E l [ A - Z ] / ) ) {
75
82
const {
83
+ ssr,
76
84
version = getPkgVersion ( 'element-plus' , '1.0.2' ) ,
77
85
} = options
78
86
const partialName = kebabCase ( name . slice ( 2 ) ) // ElTableColumn->table-column
@@ -81,7 +89,7 @@ export function ElementPlusResolver(
81
89
if ( compareVersions . compare ( version , '1.1.0-beta.1' , '>=' ) ) {
82
90
return {
83
91
importName : name ,
84
- path : ' element-plus/es',
92
+ path : ` element-plus/${ ssr ? 'lib' : ' es'} ` ,
85
93
sideEffects : getSideEffects ( partialName , options ) ,
86
94
}
87
95
}
0 commit comments