1
- const
2
- fs = require ( 'fs' ) ,
1
+ const fs = require ( 'fs' ) ,
3
2
extendPluginOptions = require ( '../lib/extendPluginOptions' ) ,
4
3
extendBabel = require ( '../lib/extendBabel' )
5
4
@@ -18,39 +17,58 @@ Enjoy! - Quasar Team
18
17
`
19
18
20
19
module . exports = ( api , opts , rootOpts ) => {
21
- const
22
- components = [
23
- 'QBtn' ,
24
- 'QLayout' ,
25
- 'QLayoutHeader' ,
26
- 'QLayoutDrawer' ,
27
- 'QPage' ,
28
- 'QPageContainer' ,
29
- 'QToolbar' ,
30
- 'QToolbarTitle' ,
31
- 'QList' ,
32
- 'QListHeader' ,
33
- 'QItemSeparator' ,
34
- 'QItem' ,
35
- 'QItemSide' ,
36
- 'QItemMain' ,
37
- ] ,
20
+ const components = opts . quasar . v1
21
+ ? [
22
+ 'QLayout' ,
23
+ 'QHeader' ,
24
+ 'QDrawer' ,
25
+ 'QPageContainer' ,
26
+ 'QPage' ,
27
+ 'QToolbar' ,
28
+ 'QToolbarTitle' ,
29
+ 'QBtn' ,
30
+ 'QIcon' ,
31
+ 'QList' ,
32
+ 'QItem' ,
33
+ 'QItemSection' ,
34
+ 'QItemLabel'
35
+ ]
36
+ : [
37
+ 'QBtn' ,
38
+ 'QLayout' ,
39
+ 'QLayoutHeader' ,
40
+ 'QLayoutDrawer' ,
41
+ 'QPage' ,
42
+ 'QPageContainer' ,
43
+ 'QToolbar' ,
44
+ 'QToolbarTitle' ,
45
+ 'QList' ,
46
+ 'QListHeader' ,
47
+ 'QItemSeparator' ,
48
+ 'QItem' ,
49
+ 'QItemSide' ,
50
+ 'QItemMain'
51
+ ] ,
38
52
directives = [ ] ,
39
53
plugins = [ ]
40
54
41
- const
42
- tsPath = api . resolve ( './src/main.ts' ) ,
55
+ const tsPath = api . resolve ( './src/main.ts' ) ,
43
56
jsPath = api . resolve ( './src/main.js' ) ,
44
57
hasTS = fs . existsSync ( tsPath )
45
-
58
+ const dependencies = opts . quasar . v1
59
+ ? {
60
+ quasar : '^1.0.0-beta.1' ,
61
+ '@quasar/extras' : '^1.0.0'
62
+ }
63
+ : {
64
+ 'quasar-framework' : '^0.17.0' ,
65
+ 'quasar-extras' : '^2.0.4'
66
+ }
46
67
const deps = {
47
- dependencies : {
48
- 'quasar-framework' : '^0.17.0' ,
49
- 'quasar-extras' : '^2.0.4'
50
- } ,
68
+ dependencies,
51
69
devDependencies : {
52
70
'babel-plugin-transform-imports' : '1.5.0' ,
53
- ' stylus' : '^0.54.5' ,
71
+ stylus : '^0.54.5' ,
54
72
'stylus-loader' : '^3.0.2'
55
73
}
56
74
}
@@ -72,8 +90,13 @@ module.exports = (api, opts, rootOpts) => {
72
90
if ( opts . quasar . all ) {
73
91
pluginOptions . quasar . importAll = true
74
92
}
75
-
76
- transpileDependencies . push ( / [ \\ / ] n o d e _ m o d u l e s [ \\ / ] q u a s a r - f r a m e w o r k [ \\ / ] / )
93
+ if ( opts . quasar . v1 ) {
94
+ pluginOptions . quasar . v1 = true
95
+ }
96
+ const transpileRegex = opts . quasar . v1
97
+ ? / [ \\ / ] n o d e _ m o d u l e s [ \\ / ] q u a s a r [ \\ / ] /
98
+ : / [ \\ / ] n o d e _ m o d u l e s [ \\ / ] q u a s a r - f r a m e w o r k [ \\ / ] /
99
+ transpileDependencies . push ( transpileRegex )
77
100
78
101
return { pluginOptions, transpileDependencies }
79
102
} )
@@ -83,26 +106,30 @@ module.exports = (api, opts, rootOpts) => {
83
106
api . render ( './templates/rtl' )
84
107
}
85
108
if ( opts . quasar . replaceComponents ) {
86
- const
87
- extension = hasTS ? 'ts' : 'js' ,
109
+ const extension = hasTS ? 'ts' : 'js' ,
88
110
routerFile = api . resolve ( `src/router.${ extension } ` ) ,
89
111
hasRouter = fs . existsSync ( routerFile )
90
112
91
- api . render ( `./templates/with${ hasRouter ? '' : 'out' } -router` , opts )
113
+ api . render ( `./templates/with${ hasRouter ? '' : 'out' } -router-base` , opts )
114
+ api . render (
115
+ `./templates/with${ hasRouter ? '' : 'out' } -router-${
116
+ opts . quasar . v1 ? 'v1' : 'legacy'
117
+ } `,
118
+ opts
119
+ )
92
120
if ( hasRouter ) {
93
121
api . render ( `./templates/with-router-${ extension } ` )
94
122
}
95
123
}
96
124
97
125
api . onCreateComplete ( ( ) => {
98
126
if ( ! opts . quasar . all ) {
99
- extendBabel ( api , opts . quasar . theme )
127
+ extendBabel ( api , opts . quasar )
100
128
}
101
129
102
130
let lines = '\n'
103
131
104
- const
105
- hasLang = opts . quasar . i18n !== 'en-us' ,
132
+ const hasLang = opts . quasar . i18n !== 'en-us' ,
106
133
hasIconSet = opts . quasar . iconSet !== 'material-icons'
107
134
108
135
if ( ! opts . quasar . features . includes ( opts . quasar . iconSet ) ) {
@@ -112,29 +139,63 @@ module.exports = (api, opts, rootOpts) => {
112
139
lines += `\nimport './styles/quasar.styl'`
113
140
114
141
if ( opts . quasar . features . includes ( 'ie' ) ) {
115
- lines += `\nimport 'quasar-framework/dist/quasar.ie.polyfills'`
142
+ lines += `\nimport 'quasar${
143
+ opts . quasar . v1 ? '' : '-framework'
144
+ } /dist/quasar.ie.polyfills'`
116
145
}
146
+ const v1IconsMap = {
147
+ 'material-icons' : 'material-icons' ,
148
+ ionicons : 'ionicons-v4' ,
149
+ fontawesome : 'fontawesome-v5' ,
150
+ mdi : 'mdi-v3'
151
+ }
152
+ // Return either legacy or v1 name
153
+ const getIconSetName = name => ( opts . quasar . v1 ? v1IconsMap [ name ] : name )
117
154
if ( hasIconSet ) {
118
- lines += `\nimport iconSet from 'quasar-framework/icons/${ opts . quasar . iconSet } '`
155
+ lines += `\nimport iconSet from 'quasar${
156
+ opts . quasar . v1 ? '' : '-framework'
157
+ } /${ opts . quasar . v1 ? 'icon-set' : 'icons' } /${ getIconSetName (
158
+ opts . quasar . iconSet
159
+ ) } '`
119
160
}
120
161
if ( hasLang ) {
121
- lines += `\nimport lang from 'quasar-framework/i18n/${ opts . quasar . i18n } '`
162
+ lines += `\nimport lang from 'quasar${
163
+ opts . quasar . v1 ? '' : '-framework'
164
+ } /i18n/${ opts . quasar . i18n } '`
122
165
}
166
+ const iconSets = [
167
+ 'material-icons' ,
168
+ 'fontawesome-v5' ,
169
+ 'mdi-v3' ,
170
+ 'ionicons-v4' ,
171
+ 'fontawesome' ,
172
+ 'mdi' ,
173
+ 'ionicons'
174
+ ]
123
175
opts . quasar . features
124
176
. filter ( feat => feat !== 'ie' )
125
177
. forEach ( feat => {
126
- lines += `\nimport 'quasar-extras/${ feat } '`
178
+ if ( iconSets . includes ( feat ) ) feat = getIconSetName ( feat )
179
+ lines += `\nimport '${
180
+ opts . quasar . v1 ? '@quasar/extras' : 'quasar-extras'
181
+ } /${ feat } ${
182
+ // Path must be iconpack/iconpack.css with @quasar /extras
183
+ iconSets . includes ( feat ) && opts . quasar . v1 ? `/${ feat } .css` : ''
184
+ } '`
127
185
} )
128
186
129
187
// build import
130
188
lines += `\nimport `
131
189
if ( opts . quasar . all ) {
132
190
lines += `Quasar`
133
- }
134
- else {
191
+ } else {
135
192
lines += `{\n Quasar, `
136
- components . concat ( directives ) . concat ( plugins )
137
- . forEach ( part => { lines += `\n ${ part } ,` } )
193
+ components
194
+ . concat ( directives )
195
+ . concat ( plugins )
196
+ . forEach ( part => {
197
+ lines += `\n ${ part } ,`
198
+ } )
138
199
lines += `\n}`
139
200
}
140
201
lines += ` from 'quasar'`
@@ -145,19 +206,22 @@ module.exports = (api, opts, rootOpts) => {
145
206
146
207
// if not 'all' we want to include specific defaults
147
208
if ( ! opts . quasar . all ) {
148
- lines += ',\n components: {'
149
- components
150
- . forEach ( part => { lines += `\n ${ part } ,` } )
209
+ lines += ',\n components: {'
210
+ components . forEach ( part => {
211
+ lines += `\n ${ part } ,`
212
+ } )
151
213
lines += `\n }`
152
214
153
- lines += ',\n directives: {'
154
- directives
155
- . forEach ( part => { lines += `\n ${ part } ,` } )
215
+ lines += ',\n directives: {'
216
+ directives . forEach ( part => {
217
+ lines += `\n ${ part } ,`
218
+ } )
156
219
lines += `\n }`
157
220
158
- lines += ',\n plugins: {'
159
- plugins
160
- . forEach ( part => { lines += `\n ${ part } ,` } )
221
+ lines += ',\n plugins: {'
222
+ plugins . forEach ( part => {
223
+ lines += `\n ${ part } ,`
224
+ } )
161
225
lines += `\n }`
162
226
}
163
227
0 commit comments