Angular 通用 + CkEditor5 : window is not defined

标签 angular ckeditor server-side-rendering angular-universal ckeditor5

<分区>

我正在运行一个使用 "@ckeditor/ckeditor5-angular": "1.2.3" 和自定义 build of CKeditor5 的``应用程序.我添加了 SSR(服务器端渲染 - Angular Universal)支持:

ng add @nguniversal/express-engine

当我运行 npm run dev:ssr 时,出现以下错误:

  ReferenceError: window is not defined
        at Object../node_modules/@ckeditor/ckeditor5-build-classic/build/ckeditor.js (/Users/user1/angular-ssr/dist/angular-ssr/server/main.js:117340:3242)
        at __webpack_require__ (/Users/user1/angular-ssr/dist/angular-ssr/server/main.js:20:30)
        at Object../src/app/post/new-edit-tutorial/new-edit-tutorial.component.ts (/Users/user1/angular-ssr/dist/angular-ssr/server/main.js:228444:23)
        at __webpack_require__ (/Users/user1/angular-ssr/dist/angular-ssr/server/main.js:20:30)
        at Object../src/app/post/post.module.ts (/Users/user1/angular-ssr/dist/angular-ssr/server/main.js:229101:39)
        at __webpack_require__ (/Users/user1/angular-ssr/dist/angular-ssr/server/main.js:20:30)
        at Object../src/app/app.module.ts (/Users/user1/angular-ssr/dist/angular-ssr/server/main.js:227134:23)
        at __webpack_require__ (/Users/user1/angular-ssr/dist/angular-ssr/server/main.js:20:30)
        at Object../src/app/app.server.module.ts (/Users/user1/angular-ssr/dist/angular-ssr/server/main.js:227205:22)
        at __webpack_require__ (/Users/user1/angular-ssr/dist/angular-ssr/server/main.js:20:30)

    A server error has occurred.

有没有办法将 CkEditor5 与 Angular Universal 集成?或者有人知道任何解决方法吗?

非常感谢

最佳答案

window 对象在服务器端渲染期间不可用,因为您的服务器(即 Node.JS)没有 window 对象 - 它是浏览器构造。

在 SSR 期间,您不能使用引用浏览器特定构造或对象(例如窗口或 DOM)的代码。

关于 Angular 通用 + CkEditor5 : window is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62076412/

相关文章:

node.js - 使用 Angular2 的 Service Worker 推送通知

javascript - 如何使用 Angular 2+ 循环对象键并在表格中显示

javascript - 将光标设置到CKEditor中的特定位置

javascript - 如何将 SSR 与 CSR 结合?

javascript - 即时将 JSX 字符串编译为组件

svg - 如何配置在 sveltekit 中使用 svg 文件?

javascript - Bootstrap Slides 在使用 Angular 6 使用多项目轮播时滞后

Angular - FormGroup 上的 ngOnChange

javascript - CKEditor - 不在帖子中提交数据

jquery - 使用 CKEditor 和 jQuery 验证插件不起作用