Giter VIP home page Giter VIP logo

element-plus-nuxt-starter's Introduction

Element Plus with Nuxt 3 Minimal Starter

🏗 Working in Progress

SSR Preview: https://element-plus-nuxt.vercel.app/

SSG Preview: https://nuxt-starter.element-plus.org/

We recommend to look at the Nuxt 3 Docs and Element Plus Docs.

Setup

Make sure to install the dependencies

pnpm install

Development

Start the development server on http://localhost:3000

pnpm dev

More info about nuxt deployment.

Run npm run generate to generate static html in .output/public.

Production

Build the application for production:

pnpm build

Checkout the deployment documentation.

Deploy

You need set NITRO_PRESET=vercel-edge, see Nuxt on Vercel.

Ref

element-plus-nuxt-starter's People

Contributors

genffy avatar hwanboo avatar kiritaniayaka avatar maicss avatar sxzz avatar tolking avatar warmthsea avatar xiaoxian521 avatar yunyoujun avatar zyyv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

element-plus-nuxt-starter's Issues

I run error when import { ElMessage } from "element-plus";

run error


<script>
import { ElMessage } from "element-plus";
</script>

success

<script>
// import { ElMessage } from "element-plus";
</script>

error tips

Cannot use import statement outside a module

at wrapSafe (internal/modules/cjs/loader.js:1001:16)
at Module._compile (internal/modules/cjs/loader.js:1049:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at ModuleWrap. (internal/modules/esm/translators.js:199:29)
at ModuleJob.run (internal/modules/esm/module_job.js:183:25)
at async Loader.import (internal/modules/esm/loader.js:178:24)
at async __instantiateModule__ (file://./.nuxt/dist/server/server.mjs:2358:3)

这是怎么回事啊!

 ERROR  Error while requiring module @element-plus/nuxt: Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'element-plus' imported from /Users/moonway/Desktop/applecoder/node_modules/@element-plus/nuxt/dist/module.mjs


 ERROR  Cannot start nuxt:  Cannot find package 'element-plus' imported from /Users/moonway/Desktop/applecoder/node_modules/@element-plus/nuxt/dist/module.mjs

nuxt3.0.0
"@element-plus/nuxt": "^1.0.2",

Nuxt3 Element-Plus server rendering error

Environment

  • Operating System: Windows_NT
  • Node Version: v16.13.1
  • Nuxt Version: 3.0.0-27313139.1c88580
  • Element-Plus version: 1.2.0-beta.5
  • Package Manager: [email protected]
  • Bundler: Vite
  • User Config: -
  • Runtime Modules: -
  • Build Modules: -

Reproduction

git clone https://github.com/element-plus/element-plus-nuxt-starter.git
cd element-plus-nuxt-starter
pnpm install
pnpm run build
pnpm run start

Chrome address bar input:http://localhost:3000

  1. touch pages/index.vue:
<template>
  <div class="page-index">
    <Logos />
    <Examples />
    <el-menu>
      <el-sub-menu></el-sub-menu>
    </el-menu>
  </div>
</template>
  1. remove the file plugins/element-plus.ts

  2. touch nuxt.config.ts: (need unplugin-vue-components)

import { defineNuxtConfig } from "nuxt3";
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import { join } from "path";

export default defineNuxtConfig({
  meta: {
    title: "ElementPlus + Nuxt3",
  },
  css: ["assets/scss/index.scss"],
  components: [
    "~/components",
    { 
      // Because '@nuxt/Components' does not support 'vue.use(ElButton)' mode  
      // So it's only equivalent to 'auto-imports'
      path: join(__dirname, "node_modules/element-plus/lib/components"),
      pattern: ["*/index.js"],
      prefix: "el",
    },
  ],
  vite: {
    plugins: [
      Components({
        resolvers: [ElementPlusResolver({
          ssr: true,
        })],
      }),
    ]
  }
});

Describe the bug

1、el-sub-menu,On demand, el-sub-menu.css should be available, but el-submenu.css is available instead . file path: node_modules/element-plus/theme-chalk/el-submenu.css.

2、The Node console:

TypeError: Cannot read properties of null (reading 'proxy')
    at Object.useGlobalConfig (D:\01-projects\06-nuxt\element-plus-nuxt-starter-main\node_modules\.pnpm\registry.npmmirror.com+element-plus@1.2.0-beta.5\node_modules\element-plus\lib\utils\util.js:117:24)
    at Object.useFormItem (D:\01-projects\06-nuxt\element-plus-nuxt-starter-main\node_modules\.pnpm\registry.npmmirror.com+element-plus@1.2.0-beta.5\node_modules\element-plus\lib\hooks\use-form-item\index.js:23:25)
    at setup (D:\01-projects\06-nuxt\element-plus-nuxt-starter-main\node_modules\.pnpm\registry.npmmirror.com+element-plus@1.2.0-beta.5\node_modules\element-plus\lib\components\button\src\button.vue_vue_type_script_lang.js:49:17)
    at callWithErrorHandling (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:7159:22)
    at setupStatefulComponent (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:6875:29)
    at setupComponent (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:6856:11)
    at renderComponentVNode (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:9765:17)
    at Object.ssrRenderComponent (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:10190:12)
    at _sfc_ssrRender$1 (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/server.mjs:4955:32)
    at renderComponentSubTree (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:9830:13)
[Vue warn]: resolveComponent can only be used in render() or setup().
[Vue warn]: resolveComponent can only be used in render() or setup().
TypeError: Cannot read properties of null (reading 'isCE')
    at Object.renderSlot (D:\01-projects\06-nuxt\element-plus-nuxt-starter-main\node_modules\.pnpm\registry.npmmirror.com+@vue+runtime-core@3.2.23\node_modules\@vue\runtime-core\dist\runtime-core.cjs.js:5771:34)
    at Proxy.render (D:\01-projects\06-nuxt\element-plus-nuxt-starter-main\node_modules\.pnpm\registry.npmmirror.com+element-plus@1.2.0-beta.5\node_modules\element-plus\lib\components\button\src\button.vue_vue_type_template_id_802c5c76_lang.js:49:11)
    at renderComponentRoot (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:2015:44)
    at renderComponentSubTree (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:9836:51)
    at renderComponentVNode (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:9781:16)
    at Object.ssrRenderComponent (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:10190:12)
    at _sfc_ssrRender$1 (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/server.mjs:4955:32)
    at renderComponentSubTree (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:9830:13)
    at renderComponentVNode (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:9781:16)
    at Object.ssrRenderComponent (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:10190:12)
TypeError: Cannot read properties of null (reading 'proxy')
    at Object.useGlobalConfig (D:\01-projects\06-nuxt\element-plus-nuxt-starter-main\node_modules\.pnpm\registry.npmmirror.com+element-plus@1.2.0-beta.5\node_modules\element-plus\lib\utils\util.js:117:24)
    at Object.useFormItem (D:\01-projects\06-nuxt\element-plus-nuxt-starter-main\node_modules\.pnpm\registry.npmmirror.com+element-plus@1.2.0-beta.5\node_modules\element-plus\lib\hooks\use-form-item\index.js:23:25)
    at setup (D:\01-projects\06-nuxt\element-plus-nuxt-starter-main\node_modules\.pnpm\registry.npmmirror.com+element-plus@1.2.0-beta.5\node_modules\element-plus\lib\components\input-number\src\input-number.vue_vue_type_script_lang.js:54:78)
    at callWithErrorHandling (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:7159:22)
    at setupStatefulComponent (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:6875:29)
    at setupComponent (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:6856:11)
    at renderComponentVNode (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:9765:17)
    at Object.ssrRenderComponent (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:10190:12)
    at file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/server.mjs:4930:36
    at renderComponentSubTree (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:9830:13)
[Vue warn]: resolveComponent can only be used in render() or setup().
[Vue warn]: resolveComponent can only be used in render() or setup().
[Vue warn]: resolveComponent can only be used in render() or setup().
[Vue warn]: resolveComponent can only be used in render() or setup().
[Vue warn]: resolveComponent can only be used in render() or setup().
[Vue warn]: resolveComponent can only be used in render() or setup().
[Vue warn]: resolveDirective can only be used in render() or setup().
[Vue warn]: withDirectives can only be used inside render functions.
[Vue warn]: withDirectives can only be used inside render functions.
TypeError: Cannot read properties of null (reading 'appContext')
    at setup (D:\01-projects\06-nuxt\element-plus-nuxt-starter-main\node_modules\.pnpm\registry.npmmirror.com+element-plus@1.2.0-beta.5\node_modules\element-plus\lib\components\menu\src\menu.js:65:29)
    at callWithErrorHandling (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:7159:22)
    at setupStatefulComponent (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:6875:29)
    at setupComponent (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:6856:11)
    at renderComponentVNode (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:9765:17)
    at Object.ssrRenderComponent (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:10190:12)
    at _sfc_ssrRender (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/server.mjs:4992:32)
    at renderComponentSubTree (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:9830:13)
    at renderComponentVNode (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:9781:16)
    at renderVNode (file:///D:/01-projects/06-nuxt/element-plus-nuxt-starter-main/.output/server/chunks/index.mjs:9871:22)
[Vue warn]: Component ElMenu  is missing template or render function

Additional context

No response

Logs

No response

Loading Component doesn't work

for example:

<el-table v-loading="loading" :data="tableData" style="width: 100%">
  <el-table-column prop="date" label="Date" width="180" />
  <el-table-column prop="name" label="Name" width="180" />
  <el-table-column prop="address" label="Address" />
</el-table>

will cause this error:

[Vue warn]: Failed to resolve directive: loading
[nitro] [dev] [unhandledRejection] TypeError: Cannot read properties of undefined (reading 'getSSRProps')
    at Module.ssrGetDirectiveProps (C:\Users\kevin\Documents\.Meine Dokumente\Website Dev\element-plus-nuxt-starter\node_modules\@vue\server-renderer\dist\server-renderer.cjs.js:962:42)
    at _sfc_ssrRender (C:/Users/kevin/Documents/.Meine Dokumente/Website Dev/element-plus-nuxt-starter/components/Examples.vue:358:29)
    at renderComponentSubTree (C:\Users\kevin\Documents\.Meine Dokumente\Website Dev\element-plus-nuxt-starter\node_modules\@vue\server-renderer\dist\server-renderer.cjs.js:254:17)
    at renderComponentVNode (C:\Users\kevin\Documents\.Meine Dokumente\Website Dev\element-plus-nuxt-starter\node_modules\@vue\server-renderer\dist\server-renderer.cjs.js:188:16)
    at Module.ssrRenderComponent (C:\Users\kevin\Documents\.Meine Dokumente\Website Dev\element-plus-nuxt-starter\node_modules\@vue\server-renderer\dist\server-renderer.cjs.js:612:12)
    at _sfc_ssrRender (C:/Users/kevin/Documents/.Meine Dokumente/Website Dev/element-plus-nuxt-starter/pages/index.vue:17:31)        
    at renderComponentSubTree (C:\Users\kevin\Documents\.Meine Dokumente\Website Dev\element-plus-nuxt-starter\node_modules\@vue\server-renderer\dist\server-renderer.cjs.js:254:17)
    at renderComponentVNode (C:\Users\kevin\Documents\.Meine Dokumente\Website Dev\element-plus-nuxt-starter\node_modules\@vue\server-renderer\dist\server-renderer.cjs.js:188:16)
    at renderVNode (C:\Users\kevin\Documents\.Meine Dokumente\Website Dev\element-plus-nuxt-starter\node_modules\@vue\server-renderer\dist\server-renderer.cjs.js:299:22)
    at renderComponentSubTree (C:\Users\kevin\Documents\.Meine Dokumente\Website Dev\element-plus-nuxt-starter\node_modules\@vue\server-renderer\dist\server-renderer.cjs.js:263:13)

(but it works without the v-loading="loading" directive)

Error [ERR_MODULE_NOT_FOUND]: Cannot find module element-plus-nuxt-starter/node_modules/dayjs/plugin/customParseFormat

i got this error when clone this repo

what i do
1- clone
2- yarn
3- yarn dev

then i got this error

Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/Volumes/Data/Projects/board-v3/app/element-plus-nuxt-starter/node_modules/dayjs/plugin/customParseFormat' imported from /Volumes/Data/Projects/board-v3/app/element-plus-nuxt-starter/node_modules/element-plus/es/components/time-select/src/time-select4.mjs
Did you mean to import dayjs/plugin/customParseFormat.js?
    at new NodeError (node:internal/errors:372:5)
    at finalizeResolution (node:internal/modules/esm/resolve:437:11)
    at moduleResolve (node:internal/modules/esm/resolve:1009:10)
    at defaultResolve (node:internal/modules/esm/resolve:1218:11)
    at ESMLoader.resolve (node:internal/modules/esm/loader:580:30)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:294:18)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:80:40)
    at link (node:internal/modules/esm/module_job:78:36) {
  code: 'ERR_MODULE_NOT_FOUND'
}

Nuxt project info:



"Unknown file extension ".css" after" message after configuring auto imports

It's impossible to configure auto import using unplugin-auto-import and unplugin-vue-components for vite bundler.

When I add these lines to nuxt.config.ts:

import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
import { defineNuxtConfig } from 'nuxt';
// ...
export default defineNuxtConfig({
  // ...other options

  // bundling
  vite: {
    plugins: [
      AutoImport({
        resolvers: [ElementPlusResolver()],
      }),
      Components({
        resolvers: [
          ElementPlusResolver(),
        ],
      }),
    ],
  },
})

When I'm trying to load the index page I get the following output in a server console:

n1k1tk@n1k1tk:~/PhpstormProjects/element-plus-nuxt-starter$ yarn dev
yarn run v1.22.18
$ nuxi dev
Nuxt CLI v3.0.0-rc.3                                                                                                                                                                                                   12:36:16
                                                                                                                                                                                                                       12:36:16
  > Local:    http://localhost:3000/ 
  > Network:  http://192.168.100.105:3000/
  > Network:  http://172.18.0.1:3000/
  > Network:  http://172.19.0.1:3000/
  > Network:  http://172.20.0.1:3000/

ℹ Vite server warmed up in 689ms                                                                                                                                                                                       12:36:23
ℹ Vite client warmed up in 6649ms                                                                                                                                                                                      12:36:26
✔ Vite server built in 4431ms                                                                                                                                                                                          12:36:27
✔ Nitro built in 393 ms                                                                                                                                                                                          nitro 12:36:27
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".css" for /home/n1k1tk/PhpstormProjects/element-plus-nuxt-starter/node_modules/element-plus/theme-chalk/el-date-picker.css
    at new NodeError (node:internal/errors:372:5)
    at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:76:11)
    at defaultGetFormat (node:internal/modules/esm/get_format:118:38)
    at defaultLoad (node:internal/modules/esm/load:21:20)
    at ESMLoader.load (node:internal/modules/esm/loader:407:26)
    at ESMLoader.moduleProvider (node:internal/modules/esm/loader:326:22)
    at new ModuleJob (node:internal/modules/esm/module_job:66:26)
    at ESMLoader.#createModuleJob (node:internal/modules/esm/loader:345:17)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:304:34)
    at async ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:82:21) {
  code: 'ERR_UNKNOWN_FILE_EXTENSION'
}

How import @element-plus/icons?

(node:30089) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
[Vue warn]: Unhandled error during execution of async component loader 
  at <AsyncComponentWrapper>
[Vue warn]: Unhandled error during execution of setup function 
  at <AsyncComponentWrapper>
Unexpected token 'export'
  at wrapSafe (internal/modules/cjs/loader.js:1001:16)  
  at Module._compile (internal/modules/cjs/loader.js:1049:27)  
  at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)  
  at Module.load (internal/modules/cjs/loader.js:950:32)  
  at Function.Module._load (internal/modules/cjs/loader.js:790:12)  
  at ModuleWrap.<anonymous> (internal/modules/esm/translators.js:199:29)  
  at ModuleJob.run (internal/modules/esm/module_job.js:183:25)  
  at async Loader.import (internal/modules/esm/loader.js:178:24)  
  at async __instantiateModule__ (file://./.nuxt/dist/server/server.mjs:3862:3)
[Vue warn]: Invalid vnode type when creating vnode: undefined.

运行不起来

$ nuxi dev
Nuxt CLI v3.0.0-27365509.a2e2e04                                                                                                12:35:26
                                                                                                                                12:35:26
  > Local:    http://localhost:3000/ 
  > Network:  http://10.0.0.15:3000/

12:35:28 PM [vite] changed tsconfig file detected: /Users/zhangzexuan/Desktop/element-plus-nuxt-starter-main/.nuxt/tsconfig.json - Clearing cache and forcing full-reload to ensure typescript is compiled with updated config values.
12:35:28 PM [vite] changed tsconfig file detected: /Users/zhangzexuan/Desktop/element-plus-nuxt-starter-main/.nuxt/tsconfig.json - Clearing cache and forcing full-reload to ensure typescript is compiled with updated config values.
12:35:28 PM [vite] changed tsconfig file detected: /Users/zhangzexuan/Desktop/element-plus-nuxt-starter-main/.nuxt/tsconfig.json - Clearing cache and forcing full-reload to ensure typescript is compiled with updated config values.
12:35:28 PM [vite] changed tsconfig file detected: /Users/zhangzexuan/Desktop/element-plus-nuxt-starter-main/.nuxt/tsconfig.json - Clearing cache and forcing full-reload to ensure typescript is compiled with updated config values.
ℹ Vite warmed up in 903ms                                                                                                       12:35:28
✔ Vite server built in 3726ms                                                                                                   12:35:31
✔ Nitro built in 235 ms                                                                                                         12:35:31
exports is not defined
  at $id_e75fe73f (file://./.nuxt/dist/server/server.mjs:1083:10)  
  at __instantiateModule__ (file://./.nuxt/dist/server/server.mjs:3337:9)  
  at __ssrLoadModule__ (file://./.nuxt/dist/server/server.mjs:3284:25)  
  at ssrImport (file://./.nuxt/dist/server/server.mjs:3309:13)  
  at $id_cbe5172d (file://./.nuxt/dist/server/server.mjs:998:37)  
  at __instantiateModule__ (file://./.nuxt/dist/server/server.mjs:3337:9)  
  at __ssrLoadModule__ (file://./.nuxt/dist/server/server.mjs:3284:25)  
  at ssrImport (file://./.nuxt/dist/server/server.mjs:3309:13)  
  at $id_a031119c (file://./.nuxt/dist/server/server.mjs:938:37)  
  at async __instantiateModule__ (file://./.nuxt/dist/server/server.mjs:3337:3)
m.default is not a function
  at file://./.nuxt/dist/server/server.mjs:10:126  
  at processTicksAndRejections (internal/process/task_queues.js:95:5)  
  at async renderToString (file://./node_modules/vue-bundle-renderer/dist/index.mjs:247:19)  
  at async renderMiddleware (file://./.nuxt/nitro/index.mjs:191:20)  
  at async handle (file://./node_modules/h3/dist/index.mjs:601:19)
m.default is not a function
  at file://./.nuxt/dist/server/server.mjs:10:126  
  at processTicksAndRejections (internal/process/task_queues.js:95:5)  
  at async renderToString (file://./node_modules/vue-bundle-renderer/dist/index.mjs:247:19)  
  at async renderMiddleware (file://./.nuxt/nitro/index.mjs:191:20)  
  at async handle (file://./node_modules/h3/dist/index.mjs:601:19)
m.default is not a function
  at file://./.nuxt/dist/server/server.mjs:10:126  
  at processTicksAndRejections (internal/process/task_queues.js:95:5)  
  at async renderToString (file://./node_modules/vue-bundle-renderer/dist/index.mjs:247:19)  
  at async renderMiddleware (file://./.nuxt/nitro/index.mjs:191:20)  
  at async handle (file://./node_modules/h3/dist/index.mjs:601:19)


Component inside <Transition> renders non-element root node that cannot be animated.

https://github.com/209/element-plus-nuxt-starter

<el-dropdown>
  <span>
    test
  </span>
  <template #dropdown>
    <div>
      <el-dropdown-menu>
        <el-dropdown-item>Action 1</el-dropdown-item>
        <el-dropdown-item>Action 2</el-dropdown-item>
        <el-dropdown-item>Action 3</el-dropdown-item>
        <el-dropdown-item disabled>Action 4</el-dropdown-item>
        <el-dropdown-item divided>Action 5</el-dropdown-item>
      </el-dropdown-menu>
    </div>
  </template>
</el-dropdown>

Снимок экрана 2021-10-24 в 01 12 37

If add root <div> then we haven't warn

el-carousel will report an error: cannot read properties of null (reading'isce') when it packages and starts nuxt3 project

Environment

Operating System: windows
Node Version: v16.15.0
Nuxt Version: 3.0.0-rc.6
Package Manager: [email protected]
Builder:
Build Modules: "element-plus": "^2.2.10"

Reproduction

nuxt build / nuxt start

Describe the bug

When I use the el-carousel component, the error cannot read properties of null (reading'isCE') will be reported when I package and start the nuxt3 project, But as long as I add the tag, it will work normally

Logs

[Vue warn]: onMounted is called when there is no active component instance to be associated with. Lifecycle injec
tion APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lif
ecycle hooks before the first await statement.
[Vue warn]: onBeforeUnmount is called when there is no active component instance to be associated with. Lifecycle
 injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to regist
er lifecycle hooks before the first await statement.
[Vue warn]: provide() can only be used inside setup().
TypeError: Cannot read properties of null (reading 'isCE')
    at renderSlot (D:\StudyPlace\Test\nuxt3-app\.output\server\node_modules\@vue\runtime-core\dist\runtime-core.c
js.js:2937:34)
    at Proxy.<anonymous> (file:///D:/StudyPlace/Test/nuxt3-app/.output/server/node_modules/element-plus/es/compon
ents/carousel/src/carousel2.mjs:295:11)
    at renderComponentRoot (file:///D:/StudyPlace/Test/nuxt3-app/.output/server/chunks/renderer.mjs:2961:45)     
    at renderComponentSubTree (file:///D:/StudyPlace/Test/nuxt3-app/.output/server/chunks/renderer.mjs:10597:51) 
    at renderComponentVNode (file:///D:/StudyPlace/Test/nuxt3-app/.output/server/chunks/renderer.mjs:10526:16)   
    at Object.ssrRenderComponent (file:///D:/StudyPlace/Test/nuxt3-app/.output/server/chunks/renderer.mjs:10946:1
2)

My Reproduction Project

https://github.com/kood-2008/nuxt3-carousel/tree/master

build报错

执行命令yarn build报错:
yarn版本:1.22.10
node版本:16.11.1
npm版本:8.1.0
系统:archlinux
`
ERROR Could not resolve './use-prevent-globalThis' from ./use-prevent-globalThis?commonjs-external 21:02:42

ERROR Could not resolve './use-prevent-globalThis' from ./use-prevent-globalThis?commonjs-external 21:02:42

at error (node_modules/rollup/dist/shared/rollup.js:158:30)
at ModuleLoader.handleResolveId (node_modules/rollup/dist/shared/rollup.js:22263:24)
at node_modules/rollup/dist/shared/rollup.js:22257:26

error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
`

求助:动态组件如何正确使用,是否不支持动态组件渲染

求助:动态组件如何正确使用,是否不支持动态组件渲染

我想通过读取路由配置渲染icon,为什么动态组件没有生效

<el-menu-item v-for="route in routes" :index="route.path" @click="toPage(route.path)">
   <el-icon color="#409EFC" class="no-inherit">
    <component :is="route?.mate?.icon" />
   </el-icon>
</el-menu-item>

相同的下面直接使用对应的icon是正常的

<el-menu-item v-for="route in routes" :index="route.path" @click="toPage(route.path)">
   <el-icon color="#409EFC" class="no-inherit">
      <el-icon-histogram />
   </el-icon>
   <span>{{route?.mate?.name}}</span>
</el-menu-item>

image

SSR, Hydration node mismatch

  <div>
    <el-dropdown>
      <span>
        test
      </span>
      <template #dropdown>
        <div>
          <el-dropdown-menu>
            <el-dropdown-item>Action 1</el-dropdown-item>
            <el-dropdown-item>Action 2</el-dropdown-item>
            <el-dropdown-item>Action 3</el-dropdown-item>
            <el-dropdown-item disabled>Action 4</el-dropdown-item>
            <el-dropdown-item divided>Action 5</el-dropdown-item>
          </el-dropdown-menu>
        </div>
      </template>
    </el-dropdown>
  </div>

https://github.com/209/element-plus-nuxt-starter
Снимок экрана 2021-10-24 в 01 08 22

yarn build very slow (383s)

i run yarn build and i wait 383.67s. Is this normal?

yarn run v1.22.18
$ nuxi build
Nuxt CLI v3.0.0-rc.4                                                                                                    09:36:54
ℹ Vite client warmed up in 4562ms                                                                                       09:37:01
ℹ Client built in 6053ms                                                                                                09:37:02
ℹ Building server...                                                                                                    09:37:02
✔ Server built in 2575ms                                                                                                09:37:05
✔ Generated public .output/public                                                                                 nitro 09:37:05
start Building server...                                                                                          nitro 09:37:05
start Writing server bundle...                                                                                    nitro 09:43:17
✔ Server built                                                                                                    nitro 09:43:18
  ├─ .output/server/package.json (587 B) (282 B gzip)
  ├─ .output/server/index.mjs (458 B) (254 B gzip)
  ├─ .output/server/chunks/nitro/node-server.mjs.map (57.5 kB) (4.41 kB gzip)
  ├─ .output/server/chunks/nitro/node-server.mjs (16.7 kB) (5.37 kB gzip)
  ├─ .output/server/chunks/handlers/renderer.mjs.map (1.92 MB) (91.4 kB gzip)
  ├─ .output/server/chunks/handlers/renderer.mjs (431 kB) (98.6 kB gzip)
  ├─ .output/server/chunks/app/server.mjs.map (743 kB) (93.9 kB gzip)
  ├─ .output/server/chunks/app/server.mjs (627 kB) (132 kB gzip)
  ├─ .output/server/chunks/app/client.manifest.mjs.map (930 B) (366 B gzip)
  └─ .output/server/chunks/app/client.manifest.mjs (975 B) (343 B gzip)
Σ Total size: 6.7 MB (1.21 MB gzip)
✔ You can preview this build using node .output/server/index.mjs                                                  nitro 09:43:18
✨  Done in 383.67s.

yarn build

1646114284(1)
请教下,为啥我拉项目下拉打包运行 yarn start这样的

示例demo在执行完yarn install后运行build,generate等会报错,dev不会报错

如上述标题所述,我在github codespace下执行yarn install安装好依赖后,执行build,generate等都会出现例如这样的报错
,使用dev就正常,排查后怀疑是nuxt3.1.x和elementplus有兼容性问题,将nuxt版本锁定在3.0.0则正常无报错,在锁定版本测试时仅将package.json里有关nuxt的依赖版本从"^3.0.0"修改为了"~3.0.0"或"3.0.0",别的均未修改

ℹ Initializing prerenderer

ERROR Error: Could not load raw:element-plus/theme-chalk/el-icon.css (imported by node_modules/element-plus/es/components/icon/style/css.mjs): ENOENT: no such file or directory, open 'element-plus/theme-chalk/el-icon.css'

undefined

ERROR Could not load raw:element-plus/theme-chalk/el-icon.css (imported by node_modules/element-plus/es/components/icon/style/css.mjs): ENOENT: no such file or directory, open 'element-plus/theme-chalk/el-icon.css'

Cannot use import statement outside a module

``SyntaxError: Cannot use import statement outside a module
at wrapSafe (internal/modules/cjs/loader.js:984:16)
at Module._compile (internal/modules/cjs/loader.js:1032:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:933:32)
at Function.Module._load (internal/modules/cjs/loader.js:774:14)
at ModuleWrap. (internal/modules/esm/translators.js:199:29)
at ModuleJob.run (internal/modules/esm/module_job.js:152:23)
at async Loader.import (internal/modules/esm/loader.js:177:24)
at async instantiateModule (file:///D:/web/web/.nuxt/dist/server/server.mjs:2432:3)
(node:33632) UnhandledPromiseRejectionWarning: D:\web\web\node_modules\element-plus\es\index.js:1
import installer from './defaults';

nuxt3.rc-8引入element-plus2.2.13报错

nuxt3升级到rc-8就没法引入element-plus了。rc-7和rc-8升级了vite到vite3,不知道是哪边的原因 ,另外这个starter项目可以适配一下nuxt3最新的预览版吗?作为一个升级到vite3的阶段性版本,nuxt3已经接近于发正式版了。请适配一下,现在还是nuxt.rc-3
image
image

Uncaught Error: Dynamic require of "@vueuse/core" is not supported

Uncaught Error: Dynamic require of "@vueuse/core" is not supported
at chunk-EABY2BFN.js:26
at node_modules/element-plus/lib/hooks/use-modal/index.js (element-plus_lib.js:7476)
at __require2 (chunk-EABY2BFN.js:32)
at node_modules/element-plus/lib/hooks/index.js (element-plus_lib.js:10983)
at __require2 (chunk-EABY2BFN.js:32)
at node_modules/element-plus/lib/make-installer.js (element-plus_lib.js:11039)
at __require2 (chunk-EABY2BFN.js:32)
at node_modules/element-plus/lib/defaults.js (element-plus_lib.js:65543)
at __require2 (chunk-EABY2BFN.js:32)
at node_modules/element-plus/lib/index.js (element-plus_lib.js:65921)

how `external` element-plus with cdn ?

我用的是mjs,然后在vite external这一步就报错了,无法拆分
这是我的配置文件:

import { defineNuxtConfig } from "nuxt";

const isProd = process.env.NODE_ENV === "production";

// https://v3.nuxtjs.org/docs/directory-structure/nuxt.config
export default defineNuxtConfig({
  app: {
    head: {
      script: [
        {
          src: "https://unpkg.com/browse/[email protected]/dist/index.full.min.mjs",
          type: "module",
        },
      ],
    },
  },
  // css
  css: ["element-plus/dist/index.css"],
  target: "static",
  components: true,
  // build
  build: {
    transpile: isProd ? ["element-plus"] : [],
  },
  experimental: {
    viteNode: true,
  },
  vite: {
    build: {
      rollupOptions: {
        external: ["element-plus"],
      },
    },
  },
});

控制台log:

 WARN  [Vue warn]: Unhandled error during execution of setup function                                                                                                                                                                  10:22:24
  at <ElButton class="y-button main__start" data-v-26e30a3a="" >


 ERROR  [nuxt] [request error] Cannot read properties of null (reading 'setupContext')                                                                                                                                                 10:22:24
  at getContext (./node_modules/.pnpm/@[email protected]/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:6018:14)  
  at useSlots (./node_modules/.pnpm/@[email protected]/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:6011:12)  
  at setup (./node_modules/.pnpm/[email protected]/node_modules/element-plus/es/components/button/src/button4.mjs:25:19)  
  at callWithErrorHandling (./.nuxt/prerender/chunks/renderer.mjs:2654:23)  
  at setupStatefulComponent (./.nuxt/prerender/chunks/renderer.mjs:9548:30)  
  at setupComponent (./.nuxt/prerender/chunks/renderer.mjs:9503:12)  
  at renderComponentVNode (./.nuxt/prerender/chunks/renderer.mjs:12068:17)  
  at Object.ssrRenderComponent (./.nuxt/prerender/chunks/renderer.mjs:12504:12)  
  at _sfc_ssrRender$1 (./.nuxt/prerender/chunks/app/server.mjs:4087:32)  
  at renderComponentSubTree (./.nuxt/prerender/chunks/renderer.mjs:12149:13)

  ├─ / (2034ms) (Error: [500] Internal Server Error)                                 

Another option is displayed in Select Component

Hi, element-plus-nuxt-starter team!
I'm using Element-plus with Nuxt3.
That's where I encountered the problem in the issue title.

In the code, they are separate components, but each option is displayed together as shown in the image.
スクリーンショット 2021-11-02 18 25 22
スクリーンショット 2021-11-02 17 38 57
スクリーンショット 2021-11-02 17 39 03

I just added the code to this repository, is this a problem with the way it is written?
Or is this a problem in the Nuxt3 situation?😔

Please advise🙇

Table with header, SSR

https://github.com/209/element-plus-nuxt-starter

    <el-table
        :data="tableData"
        style="width: 100%"
        :stripe="true"
        :fit="true"
        :sortable="false"
        :show-header="true"
    >
      <el-table-column prop="field" label="Field" width="180" />
      <el-table-column prop="value" label="Value" width="180" />
    </el-table>

Снимок экрана 2021-10-24 в 01 32 13

In SSR we have "0" in html before hydrate.
We haven't problem with :show-header="false"

upd: Table doesn't render on server :(
Only after hydrate

Error Starting

Hello,

Using the latest version of this repository, after git clone, yarn install and yarn run dev, when you you access the localhost:3000 the following error is printed in the console:

[Vue warn]: Unhandled error during execution of watcher callback
at <ElPopperTrigger id="el-id-5038-0" virtual-ref=undefined open=false ... >

ERROR [worker] Element is not defined

at isElement$1 (node_modules/element-plus/dist/index.full.js:2144:43)
at vue.watch.immediate (node_modules/element-plus/dist/index.full.js:7453:13)
at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:157:22)
at callWithAsyncErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:166:21)
at doWatch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:1744:13)
at Object.watch (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:1656:12)
at setup (node_modules/element-plus/dist/index.full.js:7452:11)
at callWithErrorHandling (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:157:22)
at setupStatefulComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6977:29)
at setupComponent (node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6933:11)

ERROR [proxy] connect ENOENT /var/folders/sw/sbmrkj352zb87qyhrv3c22jh0000gn/T/nitro/worker-1474-1.sock

能否添加动态导入组件的演示?

阅读 Element Plus 文档后的设置:

import { defineNuxtConfig } from 'nuxt'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import IconsResolver from "unplugin-icons/resolver"

const lifecycle = process.env.npm_lifecycle_event

// https://v3.nuxtjs.org/api/configuration/nuxt.config
export default defineNuxtConfig({
  meta: {
    title: 'Element Plus + Nuxt 3',
    meta: [
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      {
        hid: 'description',
        name: 'description',
        content: 'ElementPlus + Nuxt3',
      },
    ],
    link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }],
  },
  build: {
    transpile: [
      lifecycle === 'build' || lifecycle === 'generate' ? 'element-plus' : '',
      'element-plus/es'
    ],
    postcss: {
      postcssOptions: {
        plugins: {
          tailwindcss: {},
          autoprefixer: {},
        },
      },
    },
  },
  vite: {
    plugins: [
      AutoImport({
        resolvers: [ElementPlusResolver()],
      }),
      Components({
        dts: true,
        resolvers: [
          ElementPlusResolver({ ssr: true }), 
          IconsResolver({})
        ],
      }),
    ],
  },
  modules: [
    '@nuxt/content', '@vueuse/nuxt',
  ],
  nitro: {
    plugins: [
      // "~/database/index.ts",
    ]
  },
  css: [
    '~/styles/index.scss'
  ]
})

能正常根据项目需要,生成components.d.ts:

// generated by unplugin-vue-components
// We suggest you to commit this file into source control
// Read more: https://github.com/vuejs/core/pull/3399
import '@vue/runtime-core'

export {}

declare module '@vue/runtime-core' {
  export interface GlobalComponents {
    ElButton: typeof import('element-plus/lib')['ElButton']
    ElColorPicker: typeof import('element-plus/lib')['ElColorPicker']
    ElDialog: typeof import('element-plus/lib')['ElDialog']
    ElForm: typeof import('element-plus/lib')['ElForm']
    ElFormItem: typeof import('element-plus/lib')['ElFormItem']
    ElIcon: typeof import('element-plus/lib')['ElIcon']
    ElInput: typeof import('element-plus/lib')['ElInput']
    ElOption: typeof import('element-plus/lib')['ElOption']
    ElRadioButton: typeof import('element-plus/lib')['ElRadioButton']
    ElRadioGroup: typeof import('element-plus/lib')['ElRadioGroup']
    ElSelect: typeof import('element-plus/lib')['ElSelect']
    ElTextarea: typeof import('element-plus/es')['ElTextarea']
    RouterLink: typeof import('vue-router')['RouterLink']
    RouterView: typeof import('vue-router')['RouterView']
  }
}

但是 hot reload 失效了,项目编译正常,需要每次手动点击浏览器的刷新按钮才能更新界面。
谢谢🙏

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.