Попытка добавить функцию js в мой проект ioni c, но получение self не определяется ошибкой. После попытки добавить себя как global ["self"] = win.self || выиграть; Я получаю сообщение об ошибке
ERROR TypeError: невозможно переопределить свойство: конструктор. Используйте последнюю версию всех необходимых зависимостей в проекте.
server.ts
import "zone.js/dist/zone-node";
import { ngExpressEngine } from "@nguniversal/express-engine";
import * as express from "express";
import { join } from "path";
import { enableProdMode } from "@angular/core";
import { AppServerModule } from "./src/main.server";
import { APP_BASE_HREF } from "@angular/common";
import { existsSync } from "fs";
enableProdMode();
export function app(): express.Express {
const server = express();
const distFolder = join(process.cwd(), "dist/app/browser");
const indexHtml = existsSync(join(distFolder, "index.original.html"))
? "index.original.html"
: "index";
const domino = require("domino");
const win = domino.createWindow(indexHtml);
// mock
global["window"] = win;
global["self"] = win.self;
global["document"] = win.document;
global["navigator"] = win.navigator;
server.engine("html", ngExpressEngine({ bootstrap: AppServerModule }));
server.set("view engine", "html");
server.set("views", distFolder);
server.get(
"*.*",
express.static(distFolder, {
maxAge: "1y",
})
);
server.get("*", (req, res) => {
res.render(indexHtml, {
req,
providers: [{ provide: APP_BASE_HREF, useValue: req.baseUrl }],
});
});
return server;
}
function run(): void {
const port = process.env.PORT || 4000;
const server = app();
server.listen(port, () => {
console.log(`Node express server listening on http://localhost:${port}`);
});
}
declare const __non_webpack_require__: NodeRequire;
const mainModule = __non_webpack_require__.main;
const moduleFilename = (mainModule && mainModule.filename) || "";
if (moduleFilename === __filename || moduleFilename.includes("iisnode")) {
run();
}
export * from "./src/main.server";