我如何 运行 Chart.js 与 Angular 10 SSR / 通用?
How do I run Chart.js with Angular 10 SSR / universal?
我正在尝试让 运行 Chart.js (ng2-charts) 在 Angular 10 上使用服务器端呈现的页面。不幸的是,它总是崩溃:
ERROR { Error: Uncaught (in promise): ReferenceError: window is not defined
ReferenceError: window 未定义
所以我的问题是是否有人能够运行?
发生这种情况的原因是因为您是 运行 使用 NodeJS 的 SSR,并且没有 window 对象,因此您需要更换 NodeJS。
我建议安装 domino
npm i --save-dev domino
然后在你的server.ts
const domino = require('domino');
const template = fs
.readFileSync(path.join('dist/browser', 'index.html')) // Or whereever your rendered index.html is
.toString();
const window = domino.createWindow(template);
(global as any).window = window;
(global as any).document = window.document;
我正在尝试让 运行 Chart.js (ng2-charts) 在 Angular 10 上使用服务器端呈现的页面。不幸的是,它总是崩溃:
ERROR { Error: Uncaught (in promise): ReferenceError: window is not defined
ReferenceError: window 未定义
所以我的问题是是否有人能够运行?
发生这种情况的原因是因为您是 运行 使用 NodeJS 的 SSR,并且没有 window 对象,因此您需要更换 NodeJS。
我建议安装 domino
npm i --save-dev domino
然后在你的server.ts
const domino = require('domino');
const template = fs
.readFileSync(path.join('dist/browser', 'index.html')) // Or whereever your rendered index.html is
.toString();
const window = domino.createWindow(template);
(global as any).window = window;
(global as any).document = window.document;