
Element Plus module for Nuxt
!WARNING Since the dayjs used internally by element-plus is not a JavaScript modules, in order to ensure that it can be converted into a JavaScript modules before startup, you need to add a
.npmrcfile to the root directory of the project and add the following configuration:shamefully-hoist=true node-linker=hoistedOr install the
dayjsdependency separately.
npx nuxi@latest module add element-plus
# or
npm i element-plus @element-plus/nuxt -D
!WARNING At present, the method cannot automatically obtain the context, and you need to manually configure installMethods in the options.
export default defineNuxtConfig({
modules: [
'@element-plus/nuxt'
],
elementPlus: { /** Options */ }
})
<template>
<el-button @click="ElMessage('hello')">button</el-button>
<ElButton :icon="ElIconEditPen" type="success">button</ElButton>
<LazyElButton type="warning">lazy button</LazyElButton>
</template>
Reference Nuxt documentation and playground use.
'css' | 'scss' | booleancssimport style css or sass(scss) with components, disable automatically import styles with false.
arrayA list of themes that require import styles automatically.
e.g. ['dark']
string | falseElIconIcon prefix name, disable automatically import icon with false.
arrayList of methods that need to be installed.
e.g. ['ElLoading', 'ElMessage', 'ElMessageBox', 'ElNotification']
stringelWhen you change the global namespace, you must change it here as well.
stringReplace default locale, you can find locale list here
e.g. 'zh-cn'
booleanfalseWhether to cache the element-plus components and directives. Only effective in development mode.
If you enable this feature, you will get faster loading speed in development mode.
objectConfigure SCSS variables for generating custom themes. Only effective when importStyle is scss.
e.g.
{
$colors: {
primary: { base: 'rgba(107,33,168, 1)' }
},
dark: {
$colors: {
primary: { base: 'rgb(242, 216, 22)' }
}
}
}
objectSet global configuration, such as modifying the default size and z-index of the component.
e.g. { size: 'small', zIndex: 3000 }
object{ prefix: 1024, current: 0 }Automatically inject the ID_INJECTION_KEY into Vue.
object{ current: 0 }Automatically inject the Z_INDEX_INJECTION_KEY into Vue.
arrayWhen you modify the append-to props in all based on ElTooltip components, you need to add the value here.
arrayIf there are components that are not imported automatically from Element Plus, you need to add the component name here.
e.g. ['ElSubMenu']
objectA map of components that the definition file of subComponent is in its parent component.
objectIf there are directives that are not imported automatically from Element Plus, you need to add the directive name here.
arrayIf you wish to add automatically import content from Element Plus, you can add it here.
e.g.
[
['useLocale', 'es/hooks/use-locale/index.mjs'],
[['castArray', 'unique'], 'es/utils/arrays.mjs']
],
arrayList of imports that will be imported whether if autoImports is disabled.
arrayWhen a component incorrectly loads styles, you need to add the component name here.
array[ /\.vue$/, /\.vue\?vue/, /\.vue\?v=/, /\.((c|m)?j|t)sx?$/]Include files that need to automatically import styles.
array[/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/, /[\\/]\.nuxt[\\/]/]Exclude files that do not require the automatic import of styles.
pnpm i to install the dependencies.pnpm dev:prepare to generate type stubs.pnpm dev to start playground in development mode.pnpm dev:build to build playground.pnpm dev:start to locally preview playground.pnpm build to build this project.