jdf2e / nutui

京东风格的移动端 Vue 组件库,支持多端小程序(A Vue.js UI Toolkit for Mobile Web)
https://nutui.jd.com
MIT License
6.17k stars 835 forks source link

Nut UI无法和Vite SSR 结合使用,不能支持SSR #603

Open hyphappy011 opened 3 years ago

hyphappy011 commented 3 years ago

我参考 Vite官方提供的SSR Vue项目(https://github.com/vitejs/vite/tree/main/packages/playground/ssr-vue),只需要在这个项目use Nut UI就会报错。

然后引入Nut UI,yarn run build可以通过,但是访问服务则报错:

ReferenceError: Element is not defined at /Volumes/Work/Development/onein-taro-build/node_modules/@nutui/nutui/dist/nutui.umd.js:6:13928 at /Volumes/Work/Development/onein-taro-build/node_modules/@nutui/nutui/dist/nutui.umd.js:6:72 at Object. (/Volumes/Work/Development/onein-taro-build/node_modules/@nutui/nutui/dist/nutui.umd.js:6:283) at Module._compile (node:internal/modules/cjs/loader:1092:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1121:10) at Module.load (node:internal/modules/cjs/loader:972:32) at Function.Module._load (node:internal/modules/cjs/loader:813:14) at Module.require (node:internal/modules/cjs/loader:996:19) at require (node:internal/modules/cjs/helpers:92:18) at Module. (/Volumes/Work/Development/onein-taro-build/dist/server/entry-server.js:26:13)

最小可复现仓库

import { createSSRApp } from 'vue' import { createRouter } from './router' import App from './Home.vue' import './app.scss'; import NutUI from '@nutui/nutui'; export function createApp() { const app = createSSRApp(App) const router = createRouter() app.use(NutUI).use(router) return { app, router } }

预期的行为和实际行为

复现步骤,具体代码

相关环境信息

richard1015 commented 3 years ago

感谢反馈,我们跟进一下

richard1015 commented 3 years ago

我这边测试了一些,vite 官网ssr-vue 最新示例无法运行, 关于ssr 我们这边稍后跟进一下,

SSR 支持当前还处于试验阶段,谨慎使用

hyphappy011 commented 3 years ago

我这边测试了一些,vite 官网ssr-vue 最新示例无法运行, 关于ssr 我们这边稍后跟进一下,

SSR 支持当前还处于试验阶段,谨慎使用

好的,多谢!

hyphappy011 commented 3 years ago

我这边测试了一些,vite 官网ssr-vue 最新示例无法运行, 关于ssr 我们这边稍后跟进一下,

SSR 支持当前还处于试验阶段,谨慎使用

我们相同方法测试了一下Element Plus,除了个别使用Teleport的组件以外,应该都可以用。

我这边测试了一些,vite 官网ssr-vue 最新示例无法运行, 关于ssr 我们这边稍后跟进一下,

SSR 支持当前还处于试验阶段,谨慎使用

好像Element Plus可以,需要找一下写法上的异同之处。可能跟teleport组件有关系。

ZaneL1u commented 2 years ago

+1