create-quasar 1.3.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/package.json +4 -4
  2. package/templates/app/quasar-v2/index.js +2 -2
  3. package/templates/app/quasar-v2/js-vite-beta/BASE/_package.json +3 -3
  4. package/templates/app/quasar-v2/js-vite-beta/BASE/quasar.config.js +36 -28
  5. package/templates/app/quasar-v2/js-webpack-beta/BASE/_package.json +3 -3
  6. package/templates/app/quasar-v2/{ts-webpack-beta/BASE/src/index.template.html → js-webpack-beta/BASE/index.html} +1 -2
  7. package/templates/app/quasar-v2/js-webpack-beta/BASE/quasar.config.js +76 -107
  8. package/templates/app/quasar-v2/js-webpack-beta/BASE/src/router/index.js +1 -1
  9. package/templates/app/quasar-v2/ts-vite-beta/BASE/_package.json +7 -7
  10. package/templates/app/quasar-v2/ts-vite-beta/BASE/quasar.config.ts +36 -28
  11. package/templates/app/quasar-v2/ts-webpack-beta/BASE/_package.json +9 -7
  12. package/templates/app/quasar-v2/{js-webpack-beta/BASE/src/index.template.html → ts-webpack-beta/BASE/index.html} +1 -2
  13. package/templates/app/quasar-v2/ts-webpack-beta/BASE/quasar.config.ts +70 -82
  14. package/templates/app/quasar-v2/ts-webpack-beta/BASE/src/router/index.ts +1 -3
  15. package/templates/app-extension/ae-v1/.eslintrc.js +3 -1
  16. package/templates/app-extension/ae-v1/BASE/_package.json +1 -1
  17. package/templates/app-extension/ae-v1/BASE/src/index.js +1 -1
  18. package/templates/app-extension/ae-v1/index.js +11 -0
  19. package/templates/app-extension/ae-v1/install-script/{install.js → src/install.js} +1 -1
  20. package/templates/app-extension/ae-v1/prompts-script/{prompts.js → src/prompts.js} +1 -1
  21. package/templates/app-extension/ae-v1/uninstall-script/{uninstall.js → src/uninstall.js} +1 -1
  22. package/templates/ui-kit/.eslintrc.js +1 -0
  23. package/templates/ui-kit/index.js +11 -0
  24. package/templates/ui-kit/quasar-v2/ae/app-extension/_package.json +1 -1
  25. package/templates/ui-kit/quasar-v2/ae/app-extension/src/index.js +12 -6
  26. package/templates/ui-kit/quasar-v2/ae-install/app-extension/src/install.js +12 -2
  27. package/templates/ui-kit/quasar-v2/ae-prompts/app-extension/src/prompts.js +1 -1
  28. package/templates/ui-kit/quasar-v2/ae-uninstall/app-extension/src/uninstall.js +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-quasar",
3
- "version": "1.3.0",
3
+ "version": "1.4.1",
4
4
  "description": "Scaffolds Quasar Apps, AppExtensions or UI kits",
5
5
  "author": {
6
6
  "name": "Razvan Stoenescu",
@@ -37,10 +37,10 @@
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/lodash": "^4.6.7",
40
- "@typescript-eslint/eslint-plugin": "^5.16.0",
41
- "@typescript-eslint/parser": "^5.16.0",
40
+ "@typescript-eslint/eslint-plugin": "^6.6.0",
41
+ "@typescript-eslint/parser": "^6.6.0",
42
42
  "eslint": "^8.11.0",
43
43
  "eslint-plugin-lodash-template": "^0.21.0",
44
- "typescript": "^4.6.2"
44
+ "typescript": "^5.2.2"
45
45
  }
46
46
  }
@@ -8,9 +8,9 @@ module.exports = async function ({ scope, utils }) {
8
8
  initial: 0,
9
9
  choices: [
10
10
  { title: 'Quasar App CLI with Vite', value: 'vite', description: 'recommended' },
11
- // { title: 'Quasar App CLI with Vite (BETA; next major version)', value: 'vite-beta', description: 'recommended' },
11
+ // { title: 'Quasar App CLI with Vite 5 (BETA | next major version)', value: 'vite-beta' },
12
12
  { title: 'Quasar App CLI with Webpack', value: 'webpack' }
13
- // { title: 'Quasar App CLI with Webpack (BETA; next major version)', value: 'webpack-beta' }
13
+ // { title: 'Quasar App CLI with Webpack (BETA | next major version)', value: 'webpack-beta' }
14
14
  ]
15
15
  },
16
16
  {
@@ -36,8 +36,8 @@
36
36
  "eslint-config-airbnb-base": "^15.0.0",
37
37
  "eslint-plugin-import": "^2.20.1",
38
38
  <% } else if (lintConfig === 'prettier') { %>
39
- "eslint-config-prettier": "^8.1.0",
40
- "prettier": "^2.5.1",
39
+ "eslint-config-prettier": "^9.0.0",
40
+ "prettier": "^3.0.3",
41
41
  <% } } %>
42
42
  <% if (preset.i18n) { %>"@intlify/vite-plugin-vue-i18n": "^3.3.1",<% } %>
43
43
  "@quasar/app-vite": "^2.0.0-alpha.0",
@@ -45,7 +45,7 @@
45
45
  "postcss": "^8.4.14"
46
46
  },
47
47
  "engines": {
48
- "node": "^18 || ^16 || ^14.19",
48
+ "node": "^24 || ^22 || ^20 || ^18",
49
49
  "npm": ">= 6.13.4",
50
50
  "yarn": ">= 1.21.1"
51
51
  }
@@ -14,6 +14,7 @@ export default configure((/* ctx */) => {
14
14
  // fix: true,
15
15
  // include: [],
16
16
  // exclude: [],
17
+ // cache: false,
17
18
  // rawOptions: {},
18
19
  warnings: true,
19
20
  errors: true
@@ -126,46 +127,51 @@ export default configure((/* ctx */) => {
126
127
  // rootComponent: 'src/App.vue',
127
128
  // router: 'src/router/index',
128
129
  // store: 'src/store/index',
129
- // registerServiceWorker: 'src-pwa/register-service-worker',
130
- // serviceWorker: 'src-pwa/custom-service-worker',
130
+ // pwaRegisterServiceWorker: 'src-pwa/register-service-worker',
131
+ // pwaServiceWorker: 'src-pwa/custom-service-worker',
131
132
  // pwaManifestFile: 'src-pwa/manifest.json',
132
133
  // electronMain: 'src-electron/electron-main',
133
134
  // electronPreload: 'src-electron/electron-preload'
135
+ // bexManifestFile: 'src-bex/manifest.json
134
136
  // },
135
137
 
136
138
  // https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr
137
139
  ssr: {
138
- // ssrPwaHtmlFilename: 'offline.html', // do NOT use index.html as name!
139
- // will mess up SSR
140
+ prodPort: 3000, // The default port that the production server should use
141
+ // (gets superseded if process.env.PORT is specified at runtime)
140
142
 
141
- // extendSSRWebserverConf (esbuildConf) {},
142
- // extendPackageJson (json) {},
143
+ middlewares: [
144
+ 'render' // keep this as last one
145
+ ],
143
146
 
144
- pwa: false,
147
+ // extendPackageJson (json) {},
148
+ // extendSSRWebserverConf (esbuildConf) {},
145
149
 
150
+ // manualStoreSerialization: true,
151
+ // manualStoreSsrContextInjection: true,
146
152
  // manualStoreHydration: true,
147
153
  // manualPostHydrationTrigger: true,
148
154
 
149
- prodPort: 3000, // The default port that the production server should use
150
- // (gets superseded if process.env.PORT is specified at runtime)
155
+ pwa: false
151
156
 
152
- middlewares: [
153
- 'render' // keep this as last one
154
- ]
157
+ // pwaOfflineHtmlFilename: 'offline.html', // do NOT use index.html as name!
158
+ // will mess up SSR
159
+
160
+ // pwaExtendGenerateSWOptions (cfg) {},
161
+ // pwaExtendInjectManifestOptions (cfg) {}
155
162
  },
156
163
 
157
164
  // https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa
158
165
  pwa: {
159
- workboxMode: 'generateSW', // or 'injectManifest'
160
- injectPwaMetaTags: true,
161
- swFilename: 'sw.js',
162
- manifestFilename: 'manifest.json',
163
- useCredentialsForManifestTag: false,
164
- // useFilenameHashes: true,
165
- // extendGenerateSWOptions (cfg) {}
166
- // extendInjectManifestOptions (cfg) {},
167
- // extendManifestJson (json) {}
168
- // extendPWACustomSWConf (esbuildConf) {}
166
+ workboxMode: 'GenerateSW' // 'GenerateSW' or 'InjectManifest'
167
+ // swFilename: 'sw.js',
168
+ // manifestFilename: 'manifest.json'
169
+ // extendManifestJson (json) {},
170
+ // useCredentialsForManifestTag: true,
171
+ // injectPwaMetaTags: false,
172
+ // extendPWACustomSWConf (esbuildConf) {},
173
+ // extendGenerateSWOptions (cfg) {},
174
+ // extendInjectManifestOptions (cfg) {}
169
175
  },
170
176
 
171
177
  // Full list of options: https://v2.quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova
@@ -180,8 +186,10 @@ export default configure((/* ctx */) => {
180
186
 
181
187
  // Full list of options: https://v2.quasar.dev/quasar-cli/developing-electron-apps/configuring-electron
182
188
  electron: {
183
- // extendElectronMainConf (esbuildConf)
184
- // extendElectronPreloadConf (esbuildConf)
189
+ // extendElectronMainConf (esbuildConf) {},
190
+ // extendElectronPreloadConf (esbuildConf) {},
191
+
192
+ // extendPackageJson (json) {},
185
193
 
186
194
  // specify the debugging port to use for the Electron app when running in development mode
187
195
  inspectPort: 5858,
@@ -210,12 +218,12 @@ export default configure((/* ctx */) => {
210
218
 
211
219
  // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-browser-extensions/configuring-bex
212
220
  bex: {
221
+ // extendBexScriptsConf (esbuildConf) {},
222
+ // extendBexManifestJson (json) {},
223
+
213
224
  contentScripts: [
214
225
  'my-content-script'
215
- ],
216
-
217
- // extendBexScriptsConf (esbuildConf) {}
218
- // extendBexManifestJson (json) {}
226
+ ]
219
227
  }
220
228
  }
221
229
  });
@@ -39,8 +39,8 @@
39
39
  "eslint-config-airbnb-base": "^15.0.0",
40
40
  "eslint-plugin-import": "^2.20.1",
41
41
  <% } else if (lintConfig === 'prettier') { %>
42
- "eslint-config-prettier": "^8.1.0",
43
- "prettier": "^2.5.1",
42
+ "eslint-config-prettier": "^9.0.0",
43
+ "prettier": "^3.0.3",
44
44
  <% } } %>
45
45
  "@quasar/app-webpack": "^4.0.0-alpha.0"
46
46
  },
@@ -56,7 +56,7 @@
56
56
  "last 5 Opera versions"
57
57
  ],
58
58
  "engines": {
59
- "node": ">= 12.22.1",
59
+ "node": "^24 || ^22 || ^20 || ^18 || ^16",
60
60
  "npm": ">= 6.13.4",
61
61
  "yarn": ">= 1.21.1"
62
62
  }
@@ -16,7 +16,6 @@
16
16
  <link rel="icon" type="image/ico" href="favicon.ico">
17
17
  </head>
18
18
  <body>
19
- <!-- DO NOT touch the following DIV -->
20
- <div id="q-app"></div>
19
+ <!-- quasar:entry-point -->
21
20
  </body>
22
21
  </html>
@@ -3,19 +3,24 @@
3
3
  // Configuration for your app
4
4
  // https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js
5
5
 
6
- <% if (preset.lint) { %>
7
- import ESLintPlugin from 'eslint-webpack-plugin'
8
- <% if (lintConfig === 'airbnb') { %>
6
+ <% if (preset.lint && lintConfig === 'airbnb') { %>
9
7
  /* eslint func-names: 0 */
10
8
  /* eslint global-require: 0 */
11
9
  <% } %>
12
- <% } %>
13
10
  import { configure } from 'quasar/wrappers';
14
11
 
15
12
  export default configure((ctx) => {
16
13
  return {
17
- // https://v2.quasar.dev/quasar-cli-webpack/supporting-ts
18
- supportTS: false,
14
+ <% if (preset.lint) { %>eslint: {
15
+ // fix: true,
16
+ // include: [],
17
+ // exclude: [],
18
+ // cache: false,
19
+ // rawEsbuildEslintOptions: {},
20
+ // rawWebpackEslintPluginOptions: {},
21
+ warnings: true,
22
+ errors: true
23
+ },<% } %>
19
24
 
20
25
  // https://v2.quasar.dev/quasar-cli-webpack/prefetch-feature
21
26
  // preFetch: true,
@@ -49,15 +54,20 @@ export default configure((ctx) => {
49
54
 
50
55
  // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-build
51
56
  build: {
57
+ // publicPath: '/',
52
58
  vueRouterMode: 'hash', // available values: 'hash', 'history'
53
59
 
54
- // transpile: false,
55
- // publicPath: '/',
60
+ esbuildTarget: {
61
+ browser: [ 'es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1' ],
62
+ node: 'node16'
63
+ },
64
+
65
+ // webpackTranspile: false,
56
66
 
57
67
  // Add dependencies for transpiling with Babel (Array of string/regex)
58
68
  // (from node_modules, which are by default not transpiled).
59
- // Applies only if "transpile" is set to true.
60
- // transpileDependencies: [],
69
+ // Applies only if "webpackTranspile" is set to true.
70
+ // webpackTranspileDependencies: [],
61
71
 
62
72
  // rtl: true, // https://quasar.dev/options/rtl-support
63
73
  // preloadChunks: true,
@@ -69,15 +79,8 @@ export default configure((ctx) => {
69
79
  // extractCSS: false,
70
80
 
71
81
  // https://v2.quasar.dev/quasar-cli-webpack/handling-webpack
72
- // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
73
- <% if (preset.lint) { %>
74
- chainWebpack (chain) {
75
- chain.plugin('eslint-webpack-plugin')
76
- .use(ESLintPlugin, [{ extensions: [ 'js', 'vue' ] }])
77
- }
78
- <% } else { %>
79
- chainWebpack (/* chain */) {}
80
- <% } %>
82
+ // "chain" is a webpack-chain object https://github.com/sorrycc/webpack-chain
83
+ // chainWebpack (/* chain, { isClient, isServer } */) {}
81
84
  },
82
85
 
83
86
  // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-devServer
@@ -85,7 +88,6 @@ export default configure((ctx) => {
85
88
  server: {
86
89
  type: 'http'
87
90
  },
88
- port: 8080,
89
91
  open: true // opens browser window automatically
90
92
  },
91
93
 
@@ -111,86 +113,57 @@ export default configure((ctx) => {
111
113
  // https://quasar.dev/options/animations
112
114
  animations: [],
113
115
 
116
+ // https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#property-sourcefiles
117
+ // sourceFiles: {
118
+ // rootComponent: 'src/App.vue',
119
+ // router: 'src/router/index',
120
+ // store: 'src/store/index',
121
+ // indexHtmlTemplate: 'index.html',
122
+ // pwaRegisterServiceWorker: 'src-pwa/register-service-worker',
123
+ // pwaServiceWorker: 'src-pwa/custom-service-worker',
124
+ // pwaManifestFile: 'src-pwa/manifest.json',
125
+ // electronMain: 'src-electron/electron-main',
126
+ // electronPreload: 'src-electron/electron-preload'
127
+ // bexManifestFile: 'src-bex/manifest.json
128
+ // },
129
+
114
130
  // https://v2.quasar.dev/quasar-cli-webpack/developing-ssr/configuring-ssr
115
131
  ssr: {
116
- pwa: false,
132
+ prodPort: 3000, // The default port that the production server should use
133
+ // (gets superseded if process.env.PORT is specified at runtime)
134
+
135
+ middlewares: [
136
+ 'render' // keep this as last one
137
+ ],
117
138
 
139
+ // extendPackageJson (json) {},
140
+ // extendSSRWebserverConf (esbuildConf) {},
141
+
142
+ // manualStoreSerialization: true,
143
+ // manualStoreSsrContextInjection: true,
118
144
  // manualStoreHydration: true,
119
145
  // manualPostHydrationTrigger: true,
120
146
 
121
- prodPort: 3000, // The default port that the production server should use
122
- // (gets superseded if process.env.PORT is specified at runtime)
147
+ pwa: false
123
148
 
124
- maxAge: 1000 * 60 * 60 * 24 * 30,
125
- // Tell browser when a file from the server should expire from cache (in ms)
149
+ // pwaOfflineHtmlFilename: 'offline.html', // do NOT use index.html as name!
150
+ // will mess up SSR
126
151
 
127
- <% if (preset.lint) { %>
128
- chainWebpackWebserver (chain) {
129
- chain.plugin('eslint-webpack-plugin')
130
- .use(ESLintPlugin, [{ extensions: [ 'js' ] }])
131
- },
132
- <% } else { %>
133
- chainWebpackWebserver (/* chain */) {},
134
- <% } %>
135
-
136
- middlewares: [
137
- ctx.prod ? 'compression' : '',
138
- 'render' // keep this as last one
139
- ]
152
+ // pwaExtendGenerateSWOptions (cfg) {},
153
+ // pwaExtendInjectManifestOptions (cfg) {}
140
154
  },
141
155
 
142
156
  // https://v2.quasar.dev/quasar-cli-webpack/developing-pwa/configuring-pwa
143
157
  pwa: {
144
- workboxPluginMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest'
145
- workboxOptions: {}, // only for GenerateSW
146
-
147
- // for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts])
148
- // if using workbox in InjectManifest mode
149
- <% if (preset.lint) { %>
150
- chainWebpackCustomSW (chain) {
151
- chain.plugin('eslint-webpack-plugin')
152
- .use(ESLintPlugin, [{ extensions: [ 'js' ] }])
153
- },
154
- <% } else { %>
155
- chainWebpackCustomSW (/* chain */) {},
156
- <% } %>
157
-
158
- manifest: {
159
- name: `<%= productName %>`,
160
- short_name: `<%= productName %>`,
161
- description: `<%= description %>`,
162
- display: 'standalone',
163
- orientation: 'portrait',
164
- background_color: '#ffffff',
165
- theme_color: '#027be3',
166
- icons: [
167
- {
168
- src: 'icons/icon-128x128.png',
169
- sizes: '128x128',
170
- type: 'image/png'
171
- },
172
- {
173
- src: 'icons/icon-192x192.png',
174
- sizes: '192x192',
175
- type: 'image/png'
176
- },
177
- {
178
- src: 'icons/icon-256x256.png',
179
- sizes: '256x256',
180
- type: 'image/png'
181
- },
182
- {
183
- src: 'icons/icon-384x384.png',
184
- sizes: '384x384',
185
- type: 'image/png'
186
- },
187
- {
188
- src: 'icons/icon-512x512.png',
189
- sizes: '512x512',
190
- type: 'image/png'
191
- }
192
- ]
193
- }
158
+ workboxMode: 'GenerateSW' // 'GenerateSW' or 'InjectManifest'
159
+ // swFilename: 'sw.js',
160
+ // manifestFilename: 'manifest.json'
161
+ // extendManifestJson (json) {},
162
+ // useCredentialsForManifestTag: true,
163
+ // injectPwaMetaTags: false,
164
+ // extendPWACustomSWConf (esbuildConf) {},
165
+ // extendGenerateSWOptions (cfg) {},
166
+ // extendInjectManifestOptions (cfg) {}
194
167
  },
195
168
 
196
169
  // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-cordova-apps/configuring-cordova
@@ -205,6 +178,11 @@ export default configure((ctx) => {
205
178
 
206
179
  // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-electron-apps/configuring-electron
207
180
  electron: {
181
+ // extendElectronMainConf (esbuildConf) {},
182
+ // extendElectronPreloadConf (esbuildConf) {},
183
+
184
+ // extendPackageJson (json) {},
185
+
208
186
  // specify the debugging port to use for the Electron app when running in development mode
209
187
  inspectPort: 5858,
210
188
 
@@ -227,26 +205,17 @@ export default configure((ctx) => {
227
205
  // https://www.electron.build/configuration/configuration
228
206
 
229
207
  appId: '<%= name %>'
230
- },
208
+ }
209
+ },
231
210
 
232
- // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
233
- <% if (preset.lint) { %>
234
- chainWebpackMain (chain) {
235
- chain.plugin('eslint-webpack-plugin')
236
- .use(ESLintPlugin, [{ extensions: [ 'js' ] }])
237
- },
238
- <% } else { %>
239
- chainWebpackMain (/* chain */) {},
240
- <% } %>
241
-
242
- <% if (preset.lint) { %>
243
- chainWebpackPreload (chain) {
244
- chain.plugin('eslint-webpack-plugin')
245
- .use(ESLintPlugin, [{ extensions: [ 'js' ] }])
246
- },
247
- <% } else { %>
248
- chainWebpackPreload (/* chain */) {},
249
- <% } %>
211
+ // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-browser-extensions/configuring-bex
212
+ bex: {
213
+ // extendBexScriptsConf (esbuildConf) {},
214
+ // extendBexManifestJson (json) {},
215
+
216
+ contentScripts: [
217
+ 'my-content-script'
218
+ ]
250
219
  }
251
220
  }
252
221
  });
@@ -23,7 +23,7 @@ export default route(function (/* { store, ssrContext } */) {
23
23
  // Leave this as is and make changes in quasar.conf.js instead!
24
24
  // quasar.conf.js -> build -> vueRouterMode
25
25
  // quasar.conf.js -> build -> publicPath
26
- history: createHistory(process.env.MODE === 'ssr' ? void 0 : process.env.VUE_ROUTER_BASE)
26
+ history: createHistory(process.env.VUE_ROUTER_BASE)
27
27
  })
28
28
 
29
29
  return Router
@@ -26,8 +26,8 @@
26
26
  },
27
27
  "devDependencies": {
28
28
  <% if (preset.lint) { %>
29
- "@typescript-eslint/eslint-plugin": "^5.10.0",
30
- "@typescript-eslint/parser": "^5.10.0",
29
+ "@typescript-eslint/eslint-plugin": "^6.6.0",
30
+ "@typescript-eslint/parser": "^6.6.0",
31
31
  "eslint": "^8.10.0",
32
32
  "eslint-plugin-vue": "^9.0.0",
33
33
  <% if (lintConfig === 'standard') { %>
@@ -39,17 +39,17 @@
39
39
  "eslint-config-airbnb-base": "^15.0.0",
40
40
  "eslint-plugin-import": "^2.20.1",
41
41
  <% } else if (lintConfig === 'prettier') { %>
42
- "eslint-config-prettier": "^8.1.0",
43
- "prettier": "^2.5.1",
42
+ "eslint-config-prettier": "^9.0.0",
43
+ "prettier": "^3.0.3",
44
44
  <% } } %>
45
- "@types/node": "^12.20.21",
45
+ "@types/node": "^20.5.9",
46
46
  <% if (preset.i18n) { %>"@intlify/vite-plugin-vue-i18n": "^3.3.1",<% } %>
47
47
  "@quasar/app-vite": "^2.0.0-alpha.0",
48
48
  "autoprefixer": "^10.4.2",
49
- "typescript": "^4.5.4"
49
+ "typescript": "^5.2.2"
50
50
  },
51
51
  "engines": {
52
- "node": "^18 || ^16 || ^14.19",
52
+ "node": "^24 || ^22 || ^20 || ^18",
53
53
  "npm": ">= 6.13.4",
54
54
  "yarn": ">= 1.21.1"
55
55
  }
@@ -15,6 +15,7 @@ export default configure((/* ctx */) => {
15
15
  // fix: true,
16
16
  // include: [],
17
17
  // exclude: [],
18
+ // cache: false,
18
19
  // rawOptions: {},
19
20
  warnings: true,
20
21
  errors: true
@@ -127,46 +128,51 @@ export default configure((/* ctx */) => {
127
128
  // rootComponent: 'src/App.vue',
128
129
  // router: 'src/router/index',
129
130
  // store: 'src/store/index',
130
- // registerServiceWorker: 'src-pwa/register-service-worker',
131
- // serviceWorker: 'src-pwa/custom-service-worker',
131
+ // pwaRegisterServiceWorker: 'src-pwa/register-service-worker',
132
+ // pwaServiceWorker: 'src-pwa/custom-service-worker',
132
133
  // pwaManifestFile: 'src-pwa/manifest.json',
133
134
  // electronMain: 'src-electron/electron-main',
134
135
  // electronPreload: 'src-electron/electron-preload'
136
+ // bexManifestFile: 'src-bex/manifest.json
135
137
  // },
136
138
 
137
139
  // https://v2.quasar.dev/quasar-cli-vite/developing-ssr/configuring-ssr
138
140
  ssr: {
139
- // ssrPwaHtmlFilename: 'offline.html', // do NOT use index.html as name!
140
- // will mess up SSR
141
+ prodPort: 3000, // The default port that the production server should use
142
+ // (gets superseded if process.env.PORT is specified at runtime)
141
143
 
142
- // extendSSRWebserverConf (esbuildConf) {},
143
- // extendPackageJson (json) {},
144
+ middlewares: [
145
+ 'render' // keep this as last one
146
+ ],
144
147
 
145
- pwa: false,
148
+ // extendPackageJson (json) {},
149
+ // extendSSRWebserverConf (esbuildConf) {},
146
150
 
151
+ // manualStoreSerialization: true,
152
+ // manualStoreSsrContextInjection: true,
147
153
  // manualStoreHydration: true,
148
154
  // manualPostHydrationTrigger: true,
149
155
 
150
- prodPort: 3000, // The default port that the production server should use
151
- // (gets superseded if process.env.PORT is specified at runtime)
156
+ pwa: false
152
157
 
153
- middlewares: [
154
- 'render' // keep this as last one
155
- ]
158
+ // pwaOfflineHtmlFilename: 'offline.html', // do NOT use index.html as name!
159
+ // will mess up SSR
160
+
161
+ // pwaExtendGenerateSWOptions (cfg) {},
162
+ // pwaExtendInjectManifestOptions (cfg) {}
156
163
  },
157
164
 
158
165
  // https://v2.quasar.dev/quasar-cli-vite/developing-pwa/configuring-pwa
159
166
  pwa: {
160
- workboxMode: 'generateSW', // or 'injectManifest'
161
- injectPwaMetaTags: true,
162
- swFilename: 'sw.js',
163
- manifestFilename: 'manifest.json',
164
- useCredentialsForManifestTag: false,
165
- // useFilenameHashes: true,
166
- // extendGenerateSWOptions (cfg) {}
167
- // extendInjectManifestOptions (cfg) {},
168
- // extendManifestJson (json) {}
169
- // extendPWACustomSWConf (esbuildConf) {}
167
+ workboxMode: 'GenerateSW' // 'GenerateSW' or 'InjectManifest'
168
+ // swFilename: 'sw.js',
169
+ // manifestFilename: 'manifest.json'
170
+ // extendManifestJson (json) {},
171
+ // useCredentialsForManifestTag: true,
172
+ // injectPwaMetaTags: false,
173
+ // extendPWACustomSWConf (esbuildConf) {},
174
+ // extendGenerateSWOptions (cfg) {},
175
+ // extendInjectManifestOptions (cfg) {}
170
176
  },
171
177
 
172
178
  // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-cordova-apps/configuring-cordova
@@ -181,8 +187,10 @@ export default configure((/* ctx */) => {
181
187
 
182
188
  // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/configuring-electron
183
189
  electron: {
184
- // extendElectronMainConf (esbuildConf)
185
- // extendElectronPreloadConf (esbuildConf)
190
+ // extendElectronMainConf (esbuildConf) {},
191
+ // extendElectronPreloadConf (esbuildConf) {},
192
+
193
+ // extendPackageJson (json) {},
186
194
 
187
195
  // specify the debugging port to use for the Electron app when running in development mode
188
196
  inspectPort: 5858,
@@ -211,12 +219,12 @@ export default configure((/* ctx */) => {
211
219
 
212
220
  // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-browser-extensions/configuring-bex
213
221
  bex: {
222
+ // extendBexScriptsConf (esbuildConf) {},
223
+ // extendBexManifestJson (json) {},
224
+
214
225
  contentScripts: [
215
226
  'my-content-script'
216
- ],
217
-
218
- // extendBexScriptsConf (esbuildConf) {}
219
- // extendBexManifestJson (json) {}
227
+ ]
220
228
  }
221
229
  }
222
230
  });
@@ -27,10 +27,11 @@
27
27
  },
28
28
  "devDependencies": {
29
29
  <% if (preset.lint) { %>
30
- "@typescript-eslint/eslint-plugin": "^5.10.0",
31
- "@typescript-eslint/parser": "^5.10.0",
30
+ "@typescript-eslint/eslint-plugin": "^6.6.0",
31
+ "@typescript-eslint/parser": "^6.6.0",
32
32
  "eslint": "^8.10.0",
33
33
  "eslint-plugin-vue": "^9.0.0",
34
+ "eslint-webpack-plugin": "^4.0.1",
34
35
  <% if (lintConfig === 'standard') { %>
35
36
  "eslint-config-standard": "^17.0.0",
36
37
  "eslint-plugin-import": "^2.19.1",
@@ -40,11 +41,12 @@
40
41
  "eslint-config-airbnb-base": "^15.0.0",
41
42
  "eslint-plugin-import": "^2.20.1",
42
43
  <% } else if (lintConfig === 'prettier') { %>
43
- "eslint-config-prettier": "^8.1.0",
44
- "prettier": "^2.5.1",
44
+ "eslint-config-prettier": "^9.0.0",
45
+ "prettier": "^3.0.3",
45
46
  <% } } %>
46
- "@types/node": "^12.20.21",
47
- "@quasar/app-webpack": "^4.0.0-alpha.0"
47
+ "@quasar/app-webpack": "^4.0.0-alpha.0",
48
+ "ts-loader": "^9.4.2",
49
+ "typescript": "^5.2.2"
48
50
  },
49
51
  "browserslist": [
50
52
  "last 10 Chrome versions",
@@ -58,7 +60,7 @@
58
60
  "last 5 Opera versions"
59
61
  ],
60
62
  "engines": {
61
- "node": ">= 12.22.1",
63
+ "node": "^24 || ^22 || ^20 || ^18 || ^16",
62
64
  "npm": ">= 6.13.4",
63
65
  "yarn": ">= 1.21.1"
64
66
  }
@@ -16,7 +16,6 @@
16
16
  <link rel="icon" type="image/ico" href="favicon.ico">
17
17
  </head>
18
18
  <body>
19
- <!-- DO NOT touch the following DIV -->
20
- <div id="q-app"></div>
19
+ <!-- quasar:entry-point -->
21
20
  </body>
22
21
  </html>
@@ -12,8 +12,18 @@
12
12
  <% } %>
13
13
  import { configure } from 'quasar/wrappers';
14
14
 
15
- export default configure((ctx) => {
15
+ export default configure((/* ctx */) => {
16
16
  return {
17
+ <% if (preset.lint) { %>eslint: {
18
+ // fix: true,
19
+ // include: [],
20
+ // exclude: [],
21
+ // cache: false,
22
+ // rawEsbuildEslintOptions: {},
23
+ // rawWebpackEslintPluginOptions: {},
24
+ warnings: true,
25
+ errors: true
26
+ },<% } %>
17
27
  // https://v2.quasar.dev/quasar-cli-webpack/prefetch-feature
18
28
  // preFetch: true,
19
29
 
@@ -46,24 +56,15 @@ export default configure((ctx) => {
46
56
 
47
57
  // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-build
48
58
  build: {
49
- <% if (preset.lint) { %>
50
- tsCheckerOptions: {
51
- eslint: {
52
- enabled: true,
53
- files: './src/**/*.{ts,tsx,js,jsx,vue}',
54
- },
55
- },
56
-
57
- <% } %>
59
+ // publicPath: '/',
58
60
  vueRouterMode: 'hash', // available values: 'hash', 'history'
59
61
 
60
- // transpile: false,
61
- // publicPath: '/',
62
+ // webpackTranspile: false,
62
63
 
63
64
  // Add dependencies for transpiling with Babel (Array of string/regex)
64
65
  // (from node_modules, which are by default not transpiled).
65
- // Applies only if "transpile" is set to true.
66
- // transpileDependencies: [],
66
+ // Applies only if "webpackTranspile" is set to true.
67
+ // webpackTranspileDependencies: [],
67
68
 
68
69
  // rtl: true, // https://quasar.dev/options/rtl-support
69
70
  // preloadChunks: true,
@@ -75,8 +76,8 @@ export default configure((ctx) => {
75
76
  // extractCSS: false,
76
77
 
77
78
  // https://v2.quasar.dev/quasar-cli-webpack/handling-webpack
78
- // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
79
- // chainWebpack (/* chain */) {}
79
+ // "chain" is a webpack-chain object https://github.com/sorrycc/webpack-chain
80
+ // chainWebpack (/* chain, { isClient, isServer } */) {}
80
81
  },
81
82
 
82
83
  // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-devServer
@@ -84,7 +85,6 @@ export default configure((ctx) => {
84
85
  server: {
85
86
  type: 'http'
86
87
  },
87
- port: 8080,
88
88
  open: true // opens browser window automatically
89
89
  },
90
90
 
@@ -110,72 +110,57 @@ export default configure((ctx) => {
110
110
  // https://quasar.dev/options/animations
111
111
  animations: [],
112
112
 
113
+ // https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#property-sourcefiles
114
+ // sourceFiles: {
115
+ // rootComponent: 'src/App.vue',
116
+ // router: 'src/router/index',
117
+ // store: 'src/store/index',
118
+ // indexHtmlTemplate: 'index.html',
119
+ // pwaRegisterServiceWorker: 'src-pwa/register-service-worker',
120
+ // pwaServiceWorker: 'src-pwa/custom-service-worker',
121
+ // pwaManifestFile: 'src-pwa/manifest.json',
122
+ // electronMain: 'src-electron/electron-main',
123
+ // electronPreload: 'src-electron/electron-preload'
124
+ // bexManifestFile: 'src-bex/manifest.json
125
+ // },
126
+
113
127
  // https://v2.quasar.dev/quasar-cli-webpack/developing-ssr/configuring-ssr
114
128
  ssr: {
115
- pwa: false,
129
+ prodPort: 3000, // The default port that the production server should use
130
+ // (gets superseded if process.env.PORT is specified at runtime)
116
131
 
132
+ middlewares: [
133
+ 'render' // keep this as last one
134
+ ],
135
+
136
+ // extendPackageJson (json) {},
137
+ // extendSSRWebserverConf (esbuildConf) {},
138
+
139
+ // manualStoreSerialization: true,
140
+ // manualStoreSsrContextInjection: true,
117
141
  // manualStoreHydration: true,
118
142
  // manualPostHydrationTrigger: true,
119
143
 
120
- prodPort: 3000, // The default port that the production server should use
121
- // (gets superseded if process.env.PORT is specified at runtime)
122
-
123
- maxAge: 1000 * 60 * 60 * 24 * 30,
124
- // Tell browser when a file from the server should expire from cache (in ms)
144
+ pwa: false
125
145
 
126
- // chainWebpackWebserver (/* chain */) {},
146
+ // pwaOfflineHtmlFilename: 'offline.html', // do NOT use index.html as name!
147
+ // will mess up SSR
127
148
 
128
- middlewares: [
129
- ctx.prod ? 'compression' : '',
130
- 'render' // keep this as last one
131
- ]
149
+ // pwaExtendGenerateSWOptions (cfg) {},
150
+ // pwaExtendInjectManifestOptions (cfg) {}
132
151
  },
133
152
 
134
153
  // https://v2.quasar.dev/quasar-cli-webpack/developing-pwa/configuring-pwa
135
154
  pwa: {
136
- workboxPluginMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest'
137
- workboxOptions: {}, // only for GenerateSW
138
-
139
- // for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts])
140
- // if using workbox in InjectManifest mode
141
- // chainWebpackCustomSW (/* chain */) {},
142
-
143
- manifest: {
144
- name: `<%= productName %>`,
145
- short_name: `<%= productName %>`,
146
- description: `<% description %>`,
147
- display: 'standalone',
148
- orientation: 'portrait',
149
- background_color: '#ffffff',
150
- theme_color: '#027be3',
151
- icons: [
152
- {
153
- src: 'icons/icon-128x128.png',
154
- sizes: '128x128',
155
- type: 'image/png'
156
- },
157
- {
158
- src: 'icons/icon-192x192.png',
159
- sizes: '192x192',
160
- type: 'image/png'
161
- },
162
- {
163
- src: 'icons/icon-256x256.png',
164
- sizes: '256x256',
165
- type: 'image/png'
166
- },
167
- {
168
- src: 'icons/icon-384x384.png',
169
- sizes: '384x384',
170
- type: 'image/png'
171
- },
172
- {
173
- src: 'icons/icon-512x512.png',
174
- sizes: '512x512',
175
- type: 'image/png'
176
- }
177
- ]
178
- }
155
+ workboxMode: 'GenerateSW' // 'GenerateSW' or 'InjectManifest'
156
+ // swFilename: 'sw.js',
157
+ // manifestFilename: 'manifest.json'
158
+ // extendManifestJson (json) {},
159
+ // useCredentialsForManifestTag: true,
160
+ // injectPwaMetaTags: false,
161
+ // extendPWACustomSWConf (esbuildConf) {},
162
+ // extendGenerateSWOptions (cfg) {},
163
+ // extendInjectManifestOptions (cfg) {}
179
164
  },
180
165
 
181
166
  // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-cordova-apps/configuring-cordova
@@ -190,6 +175,11 @@ export default configure((ctx) => {
190
175
 
191
176
  // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-electron-apps/configuring-electron
192
177
  electron: {
178
+ // extendElectronMainConf (esbuildConf) {},
179
+ // extendElectronPreloadConf (esbuildConf) {},
180
+
181
+ // extendPackageJson (json) {},
182
+
193
183
  // specify the debugging port to use for the Electron app when running in development mode
194
184
  inspectPort: 5858,
195
185
 
@@ -212,19 +202,17 @@ export default configure((ctx) => {
212
202
  // https://www.electron.build/configuration/configuration
213
203
 
214
204
  appId: '<%= name %>'
215
- },
205
+ }
206
+ },
216
207
 
217
- // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
218
- chainWebpackMain (/* chain */) {
219
- // do something with the Electron main process Webpack cfg
220
- // extendWebpackMain also available besides this chainWebpackMain
221
- },
208
+ // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-browser-extensions/configuring-bex
209
+ bex: {
210
+ // extendBexScriptsConf (esbuildConf) {},
211
+ // extendBexManifestJson (json) {},
222
212
 
223
- // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
224
- chainWebpackPreload (/* chain */) {
225
- // do something with the Electron main process Webpack cfg
226
- // extendWebpackPreload also available besides this chainWebpackPreload
227
- }
213
+ contentScripts: [
214
+ 'my-content-script'
215
+ ]
228
216
  }
229
217
  }
230
218
  });
@@ -29,9 +29,7 @@ export default route<% if (preset.vuex) { %><StateInterface><% } %>(function (/*
29
29
  // Leave this as is and make changes in quasar.conf.js instead!
30
30
  // quasar.conf.js -> build -> vueRouterMode
31
31
  // quasar.conf.js -> build -> publicPath
32
- history: createHistory(
33
- process.env.MODE === 'ssr' ? void 0 : process.env.VUE_ROUTER_BASE
34
- ),
32
+ history: createHistory(process.env.VUE_ROUTER_BASE),
35
33
  });
36
34
 
37
35
  return Router;
@@ -12,7 +12,9 @@ module.exports = {
12
12
  'repositoryType',
13
13
  'repositoryURL',
14
14
  'homepage',
15
- 'bugs'
15
+ 'bugs',
16
+
17
+ 'codeFormat'
16
18
  ]
17
19
  },
18
20
 
@@ -5,7 +5,7 @@
5
5
  "description": "<%= description %>",
6
6
  "author": "<%= author %>",
7
7
  "license": "<%= license %>",
8
- "main": "src/index.js",
8
+ "type": "<%= codeFormat === 'esm' ? 'module' : 'commonjs' %>",
9
9
  "scripts": {
10
10
  "test": "echo \"No test specified\" && exit 0"
11
11
  },
@@ -6,6 +6,6 @@
6
6
  * API: https://github.com/quasarframework/quasar/blob/master/app/lib/app-extension/IndexAPI.js
7
7
  */
8
8
 
9
- module.exports = function (api) {
9
+ <%= codeFormat === 'esm' ? 'export default' : 'module.exports =' %> function (api) {
10
10
  //
11
11
  }
@@ -22,6 +22,17 @@ module.exports = async function ({ scope, utils }) {
22
22
  utils.isValidPackageName(val) || 'Invalid App Extension name'
23
23
  },
24
24
 
25
+ {
26
+ type: 'select',
27
+ name: 'codeFormat',
28
+ message: 'Pick AE format:',
29
+ initial: 0,
30
+ choices: [
31
+ { title: 'ESM (q/app-vite >= 1.5, q/app-webpack >= 3.10)', value: 'esm', description: 'recommended' },
32
+ { title: 'CommonJS', value: 'commonjs' }
33
+ ]
34
+ },
35
+
25
36
  utils.commonPrompts.description,
26
37
  utils.commonPrompts.author,
27
38
  {
@@ -5,6 +5,6 @@
5
5
  * API: https://github.com/quasarframework/quasar/blob/master/app/lib/app-extension/InstallAPI.js
6
6
  */
7
7
 
8
- module.exports = function (api) {
8
+ <%= codeFormat === 'esm' ? 'export default' : 'module.exports =' %> function (api) {
9
9
  //
10
10
  }
@@ -39,6 +39,6 @@
39
39
 
40
40
  */
41
41
 
42
- module.exports = function () {
42
+ <%= codeFormat === 'esm' ? 'export default' : 'module.exports =' %> function () {
43
43
  return []
44
44
  }
@@ -5,6 +5,6 @@
5
5
  * API: https://github.com/quasarframework/quasar/blob/master/app/lib/app-extension/UninstallAPI.js
6
6
  */
7
7
 
8
- module.exports = function (api) {
8
+ <%= codeFormat === 'esm' ? 'export default' : 'module.exports =' %> function (api) {
9
9
  //
10
10
  }
@@ -11,6 +11,7 @@ module.exports = {
11
11
 
12
12
  'packageDescription',
13
13
  'aeDescription',
14
+ 'aeCodeFormat',
14
15
 
15
16
  'umdExportName',
16
17
  'componentName',
@@ -96,6 +96,17 @@ module.exports = async function ({ scope, utils }) {
96
96
  ]
97
97
  },
98
98
 
99
+ {
100
+ type: (_, { quasarVersion, features }) => quasarVersion === 'v2' && features.ae ? 'select' : null,
101
+ name: 'aeCodeFormat',
102
+ message: 'Pick the App Extension format:',
103
+ initial: 0,
104
+ choices: [
105
+ { title: 'ESM (q/app-vite >= 1.5, q/app-webpack >= 3.10)', value: 'esm', description: 'recommended' },
106
+ { title: 'CommonJS', value: 'commonjs' }
107
+ ]
108
+ },
109
+
99
110
  utils.commonPrompts.repositoryType,
100
111
  utils.commonPrompts.repositoryURL,
101
112
  utils.commonPrompts.homepage,
@@ -4,7 +4,7 @@
4
4
  "description": "<%= aeDescription %>",
5
5
  "author": "<%= author %>",
6
6
  "license": "<%= license %>",
7
- "main": "src/index.js",
7
+ "type": "<%= aeCodeFormat === 'esm' ? 'module' : 'commonjs' %>",
8
8
  "repository": {
9
9
  "type": "<%= repositoryType %>",
10
10
  "url": "<%= repositoryURL %>"
@@ -6,28 +6,34 @@
6
6
  * API: https://github.com/quasarframework/quasar/blob/master/app/lib/app-extension/IndexAPI.js
7
7
  */
8
8
 
9
- function extendConf (conf) {
9
+ function extendConf (conf, api) {
10
10
  // register our boot file
11
11
  conf.boot.push('~quasar-app-extension-<%= name %>/src/boot/register.js')
12
12
 
13
- // make sure app extension files & ui package gets transpiled
14
- conf.build.transpileDependencies.push(/quasar-app-extension-<%= name %>[\\/]src/)
13
+ if (api.hasWebpack) {
14
+ // make sure app extension files & ui package gets transpiled
15
+ const transpileTarget = (
16
+ conf.build.webpackTranspileDependencies // q/app-webpack >= v4
17
+ || conf.build.transpileDependencies // q/app-webpack v3
18
+ )
19
+ transpileTarget.push(/quasar-app-extension-<%= name %>[\\/]src/)
20
+ }
15
21
 
16
22
  // make sure the stylesheet goes through webpack to avoid SSR issues
17
23
  conf.css.push('~quasar-ui-<%= name %>/src/index.sass')
18
24
  }
19
25
 
20
- module.exports = function (api) {
26
+ <%= aeCodeFormat === 'esm' ? 'export default' : 'module.exports =' %> function (api) {
21
27
  // Quasar compatibility check; you may need
22
28
  // hard dependencies, as in a minimum version of the "quasar"
23
29
  // package or a minimum version of "@quasar/app-*" CLI
24
30
  api.compatibleWith('quasar', '^2.0.0')
25
31
 
26
32
  if (api.hasVite) {
27
- api.compatibleWith('@quasar/app-vite', '^1.0.0')
33
+ api.compatibleWith('@quasar/app-vite', '^1.5.0 || ^2.0.0')
28
34
  }
29
35
  else if (api.hasWebpack) {
30
- api.compatibleWith('@quasar/app-webpack', '^3.4.0')
36
+ api.compatibleWith('@quasar/app-webpack', '^3.10.0 || ^4.0.0')
31
37
  }
32
38
 
33
39
  <% if (features.component) { %>
@@ -5,6 +5,16 @@
5
5
  * API: https://github.com/quasarframework/quasar/blob/master/app/lib/app-extension/InstallAPI.js
6
6
  */
7
7
 
8
- module.exports = function (api) {
9
- //
8
+ <%= aeCodeFormat === 'esm' ? 'export default' : 'module.exports =' %> function (api) {
9
+ // Quasar compatibility check; you may need
10
+ // hard dependencies, as in a minimum version of the "quasar"
11
+ // package or a minimum version of "@quasar/app-*" CLI
12
+ api.compatibleWith('quasar', '^2.0.0')
13
+
14
+ if (api.hasVite) {
15
+ api.compatibleWith('@quasar/app-vite', '^1.0.0 || ^2.0.0')
16
+ }
17
+ else if (api.hasWebpack) {
18
+ api.compatibleWith('@quasar/app-webpack', '^3.10.0 || ^4.0.0')
19
+ }
10
20
  }
@@ -39,6 +39,6 @@
39
39
 
40
40
  */
41
41
 
42
- module.exports = function () {
42
+ <%= aeCodeFormat === 'esm' ? 'export default' : 'module.exports =' %> function () {
43
43
  return []
44
44
  }
@@ -5,6 +5,6 @@
5
5
  * API: https://github.com/quasarframework/quasar/blob/master/app/lib/app-extension/UninstallAPI.js
6
6
  */
7
7
 
8
- module.exports = function (api) {
8
+ <%= aeCodeFormat === 'esm' ? 'export default' : 'module.exports =' %> function (api) {
9
9
  //
10
10
  }