无法让 Angular Universal 与现有的 CLI 项目一起工作?
Can't get Angular Universal to work with existing CLI project?
我已经投入了 17 个小时来尝试让它发挥作用。我已经尝试了几乎所有我能找到的教程。
我有一个现有的 Angular 4 项目可以构建并且 运行 完全没有通用。现有项目甚至可以 运行 通过 AOT 正常(这是获得 运行ning 的另一个痛苦)。
我在尝试运行服务器端渲染时遇到的当前错误是:
ERROR { ReferenceError: document is not defined
甚至达到这一点也花了一些时间。有很多@types/node 错误,但现在我已经编译了它,页面不会加载。
在对该错误进行了一些研究后,可能与 ngx-bootstrap 有关,但我不是 100% 确定。
我正在使用 this tutorial in combination with the webpack version of universal 因为如果没有 webpack 我的项目将无法编译,因为 ngx-bootstrap.
在您的代码(或库)中的某处,存在对 document
对象的引用。虽然此对象在每个浏览器中都有定义,但在服务器上不可用。
根据https://github.com/angular/universal#universal-gotchas
window
, document
, navigator
, and other browser types - do not exist on the server - so using them, or any library that uses them (jQuery for example) will not work.
据我所知,除了重写代码以避免这些对象之外,没有简单的解决方案来解决这个问题。
我已经投入了 17 个小时来尝试让它发挥作用。我已经尝试了几乎所有我能找到的教程。
我有一个现有的 Angular 4 项目可以构建并且 运行 完全没有通用。现有项目甚至可以 运行 通过 AOT 正常(这是获得 运行ning 的另一个痛苦)。
我在尝试运行服务器端渲染时遇到的当前错误是:
ERROR { ReferenceError: document is not defined
甚至达到这一点也花了一些时间。有很多@types/node 错误,但现在我已经编译了它,页面不会加载。
在对该错误进行了一些研究后,可能与 ngx-bootstrap 有关,但我不是 100% 确定。
我正在使用 this tutorial in combination with the webpack version of universal 因为如果没有 webpack 我的项目将无法编译,因为 ngx-bootstrap.
在您的代码(或库)中的某处,存在对 document
对象的引用。虽然此对象在每个浏览器中都有定义,但在服务器上不可用。
根据https://github.com/angular/universal#universal-gotchas
window
,document
,navigator
, and other browser types - do not exist on the server - so using them, or any library that uses them (jQuery for example) will not work.
据我所知,除了重写代码以避免这些对象之外,没有简单的解决方案来解决这个问题。