@@ -17,7 +17,10 @@ module.exports = (api, { target, entry, name }) => {
17
17
const isAsync = / a s y n c / . test ( target )
18
18
19
19
// generate dynamic entry based on glob files
20
- const resolvedFiles = require ( 'globby' ) . sync ( [ entry ] , { cwd : api . resolve ( '.' ) } )
20
+ const resolvedFiles = require ( 'globby' ) . sync ( [ entry ] , {
21
+ cwd : api . resolve ( '.' )
22
+ } )
23
+
21
24
if ( ! resolvedFiles . length ) {
22
25
abort ( `entry pattern "${ entry } " did not match any files.` )
23
26
}
@@ -28,17 +31,19 @@ module.exports = (api, { target, entry, name }) => {
28
31
libName = name || fileToComponentName ( '' , resolvedFiles [ 0 ] ) . kebabName
29
32
prefix = ''
30
33
if ( libName . indexOf ( '-' ) < 0 ) {
31
- abort ( `--name must contain a hyphen when building a single web component.` )
34
+ abort (
35
+ `--name must contain a hyphen when building a single web component.`
36
+ )
32
37
}
33
38
} else {
34
39
// multi mode
35
- libName = prefix = ( name || api . service . pkg . name )
40
+ libName = prefix = name || api . service . pkg . name
36
41
if ( ! libName ) {
37
42
abort ( `--name is required when building multiple web components.` )
38
43
}
39
44
}
40
45
41
- const dynamicEntry = resolveEntry ( prefix , resolvedFiles , isAsync )
46
+ const dynamicEntry = resolveEntry ( prefix , libName , resolvedFiles , isAsync )
42
47
43
48
function genConfig ( minify , genHTML ) {
44
49
const config = api . resolveChainableWebpackConfig ( )
@@ -47,18 +52,11 @@ module.exports = (api, { target, entry, name }) => {
47
52
const entryName = `${ libName } ${ minify ? `.min` : `` } `
48
53
49
54
// set proxy entry for *.vue files
50
- config
51
- . entry ( entryName )
52
- . add ( dynamicEntry )
53
- config . resolve
54
- . alias
55
- . set ( '~root' , api . resolve ( '.' ) )
55
+ config . entry ( entryName ) . add ( dynamicEntry )
56
+ config . resolve . alias . set ( '~root' , api . resolve ( '.' ) )
56
57
57
58
// make sure not to transpile wc-wrapper
58
- config . module
59
- . rule ( 'js' )
60
- . exclude
61
- . add ( / v u e - w c - w r a p p e r / )
59
+ config . module . rule ( 'js' ) . exclude . add ( / v u e - w c - w r a p p e r / )
62
60
63
61
// only minify min entry
64
62
if ( ! minify ) {
@@ -74,47 +72,48 @@ module.exports = (api, { target, entry, name }) => {
74
72
. publicPath ( '' )
75
73
76
74
// externalize Vue in case user imports it
77
- config
78
- . externals ( {
79
- vue : 'Vue'
80
- } )
75
+ config . externals ( {
76
+ vue : 'Vue'
77
+ } )
81
78
82
79
config
83
80
. plugin ( 'web-component-options' )
84
- . use ( require ( 'webpack/lib/DefinePlugin' ) , [ {
81
+ . use ( require ( 'webpack/lib/DefinePlugin' ) , [
82
+ {
85
83
'process.env' : {
86
84
CUSTOM_ELEMENT_NAME : JSON . stringify ( libName )
87
85
}
88
- } ] )
86
+ }
87
+ ] )
89
88
90
89
// enable shadow mode in vue-loader
91
90
config . module
92
91
. rule ( 'vue' )
93
- . use ( 'vue-loader' )
94
- . tap ( options => {
95
- options . shadowMode = true
96
- return options
97
- } )
92
+ . use ( 'vue-loader' )
93
+ . tap ( options => {
94
+ options . shadowMode = true
95
+ return options
96
+ } )
98
97
99
98
if ( genHTML ) {
100
- config
101
- . plugin ( 'demo-html' )
102
- . use ( require ( 'html-webpack-plugin' ) , [ {
103
- template : path . resolve ( __dirname , `./demo-wc.html` ) ,
104
- inject : false ,
105
- filename : 'demo.html' ,
106
- libName,
107
- components : resolvedFiles . map ( file => {
108
- return fileToComponentName ( prefix , file ) . kebabName
109
- } )
110
- } ] )
99
+ config . plugin ( 'demo-html' ) . use ( require ( 'html-webpack-plugin' ) , [
100
+ {
101
+ template : path . resolve ( __dirname , `./demo-wc.html` ) ,
102
+ inject : false ,
103
+ filename : 'demo.html' ,
104
+ libName,
105
+ components :
106
+ prefix === ''
107
+ ? [ libName ]
108
+ : resolvedFiles . map ( file => {
109
+ return fileToComponentName ( prefix , file ) . kebabName
110
+ } )
111
+ }
112
+ ] )
111
113
}
112
114
113
115
return api . resolveWebpackConfig ( config )
114
116
}
115
117
116
- return [
117
- genConfig ( false , true ) ,
118
- genConfig ( true , false )
119
- ]
118
+ return [ genConfig ( false , true ) , genConfig ( true , false ) ]
120
119
}
0 commit comments