如何将 @angular/universal 与 Leaflet 一起使用? [英] How to use @angular/universal with Leaflet?

查看:14
本文介绍了如何将 @angular/universal 与 Leaflet 一起使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以将 Leaflet 与 angular/universal 一起使用?如何避免在服务器内构建 Leaflet?

Is it possible to use Leaflet with angular/universal? How can I avoid to build Leaflet within server?

npm run build:prod dist 文件夹生成后.但是当我运行 node server.js 我得到以下错误:

After npm run build:prod dist folder is generated. But when I run node server.js I get following error:

var requestFn = window.requestAnimationFrame ||getPrefixed('RequestAnimationFrame') ||超时延迟;窗口不是已定义.

var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer; Window is not defined.

推荐答案

我通过模拟 windownavigatordocumenta href="https://www.npmjs.com/package/mock-browser" rel="nofollow noreferrer">模拟浏览器

I solved this by mocking window, navigator and document with Mock Browser

只需安装模拟浏览器包npm i 模拟浏览器

并将以下代码添加到您的 server.ts:

And add the following code to your server.ts:

const MockBrowser = require('mock-browser').mocks.MockBrowser;
const mock = new MockBrowser();


global['window'] = mock.getWindow();
global['document'] = mock.getDocument();
global['navigator'] = mock.getNavigator();

这篇关于如何将 @angular/universal 与 Leaflet 一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆