This commit is contained in:
2022-07-21 03:28:35 +00:00
parent d7c883d6df
commit 51b34b0e1d
30103 changed files with 4152204 additions and 23 deletions
+46
View File
@@ -0,0 +1,46 @@
<%= options.getComponents().map(c => {
const magicComments = [
`webpackChunkName: "${c.chunkName}"`,
c.prefetch === true || typeof c.prefetch === 'number' ? `webpackPrefetch: ${c.prefetch}` : false,
c.preload === true || typeof c.preload === 'number' ? `webpackPreload: ${c.preload}` : false,
].filter(Boolean).join(', ')
if (c.isAsync === true || (!isDev /* prod fallback */ && c.isAsync === null)) {
const exp = c.export === 'default' ? `c.default || c` : `c['${c.export}']`
const asyncImport = `() => import('../${relativeToBuild(c.filePath)}' /* ${magicComments} */).then(c => wrapFunctional(${exp}))`
return `export const ${c.pascalName} = ${asyncImport}`
} else {
const exp = c.export === 'default' ? `default as ${c.pascalName}` : c.pascalName
return `export { ${exp} } from '../${relativeToBuild(c.filePath)}'`
}
}).join('\n') %>
// nuxt/nuxt.js#8607
function wrapFunctional(options) {
if (!options || !options.functional) {
return options
}
const propKeys = Array.isArray(options.props) ? options.props : Object.keys(options.props || {})
return {
render(h) {
const attrs = {}
const props = {}
for (const key in this.$attrs) {
if (propKeys.includes(key)) {
props[key] = this.$attrs[key]
} else {
attrs[key] = this.$attrs[key]
}
}
return h(options, {
on: this.$listeners,
attrs,
props,
scopedSlots: this.$scopedSlots,
}, this.$slots.default)
}
}
}
+7
View File
@@ -0,0 +1,7 @@
import Vue from 'vue'
import * as components from './index'
for (const name in components) {
Vue.component(name, components[name])
Vue.component('Lazy' + name, components[name])
}
+17
View File
@@ -0,0 +1,17 @@
# Discovered Components
This is an auto-generated list of components discovered by [nuxt/components](https://github.com/nuxt/components).
You can directly use them in pages and other components without the need to import them.
**Tip:** If a component is conditionally rendered with `v-if` and is big, it is better to use `Lazy` or `lazy-` prefix to lazy load.
<%
const components = options.getComponents()
const list = components.map(c => {
const pascalName = c.pascalName.replace(/^Lazy/, '')
const kebabName = c.kebabName.replace(/^lazy-/, '')
const tags = c.isAsync ? ' [async]' : ''
return `- \`<${pascalName}>\` | \`<${kebabName}>\` (${c.shortPath})${tags}`
})
%><%= list.join('\n') %>
+8
View File
@@ -0,0 +1,8 @@
<%
const tags = {}
for (const c of options.getComponents()) {
tags[c.pascalName] = {
description: `Auto imported from ${c.shortPath}`
}
}
%><%= JSON.stringify(tags, null, 2) %>