Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

329
Visualizações
Angular Universal/Ionic TypeError: head.querySelector is not a function

While trying to add SSR to an existing Angular/Ionic App, following the Ionic SSR guide, i get the following error TypeError: head.querySelector is not a function After navigating through main.js, i found that >>>

        bootstrapLazy = __name((lazyBundles, options = {}) => {
            const endBootstrap = createTime(),
              cmpTags = [],
              exclude = options.exclude || [],
              customElements2 = win.customElements,
              head = doc.head,
              metaCharset = head.querySelector("meta[charset]"), <<------ Triggers error
              visibilityStyle = doc.createElement("style"),
              deferredConnectedCallbacks = [],
              styles2 = doc.querySelectorAll("[sty-id]");

Angular/Ionic dependencies:

    "@angular/cdk": "^13.3.3",
    "@angular/common": "~13.3.5",
    "@angular/core": "~13.3.5",
    "@angular/forms": "~13.3.5",
    "@angular/localize": "^13.3.5",
    "@angular/material": "^13.3.0",
    "@angular/platform-browser": "~13.3.5",
    "@angular/platform-browser-dynamic": "~13.3.5",
    "@angular/platform-server": "~13.3.5",
    "@angular/router": "~13.3.5",
    "@ionic/angular": "^6.0.0",
    "@ionic/angular-server": "^6.1.4-dev.11651091997.1bc6fa6b",

I have added the required code in server.ts which consists of

const domino = require('domino');
const fs = require('fs');
const path = require('path');

// Use the browser index.html as template for the mock window
const template = fs
  .readFileSync(
    path.join(join(process.cwd(), 'dist/app/browser'), 'index.html')
  )
  .toString();

// Shim for the global window and document objects.
const win = domino.createWindow(template);
global['window'] = win;
global['self'] = win;
global['Node'] = win.Node;
global['Event'] = win.Event;
global['KeyboardEvent'] = win.Event;
global['MouseEvent'] = win.Event;
global['Event']['prototype'] = win.Event.prototype;
global['IDBIndex'] = win.IDBIndex;
global['document'] = win.document;
global['doc'] = win.document;
global['navigator'] = win.navigator;

P.S: This is not all the code but the part that was required so the DOM issues don't show.

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda