J'essaie de suivre cet exemple ici https://www.youtube.com/watch?v=gxCu5TEmxXE , mais lorsque je fais tsc -p
, J'obtiens une erreur. Dois-je importer quelque chose?
ERREUR:
node_modules/@angular/common/src/location/location.d.ts(1,10): error TS2305: Module '"...functions/node_modules/rxjs/Rx"' has no exported member 'SubscriptionLike'.
TS FILE
import "zone.js/dist/zone-node";
import * as functions from "firebase-functions";
import * as express from "express"
import { renderModuleFactory } from "@angular/platform-server"
import * as fs from "fs"
const document = fs.readFileSync(__dirname + "/dist-server/index.html", "utf8");
const AppServerModuleNgFactory = require(__dirname + "/dist-server/main.bundle");
const app = express();
app.get("**", (req, res) => {
const url = req.path;
renderModuleFactory(AppServerModuleNgFactory, { document, url }).then(html => {
res.send(html);
});
});
exports.post = functions.https.onRequest(app);
[~ # ~] config [~ # ~]
{
"compilerOptions": {
"module": "commonjs",
"target": "es2015",
"rootDir": ".",
"outDir": "../functions"
},
"files": [
"index.ts"
]
}
J'ai fait face au même problème après avoir suivi
suite à ce tutoriel de Djamware
Après avoir beaucoup cherché, j’ai constaté que le paquet Rxjs installé avec les instructions de ce tutoriel n’était pas pris en charge avec Angular 6.
Angular 6 ne fonctionne pas avec RxJS 5.5, mais avec RxJS 6.
npm i rxjs@6
Exécutez la commande ci-dessus dans cli et cela devrait résoudre votre problème. C'est ce qui s'est passé dans mon cas.
Je parierais que si vous regardiez dans votre package.json
vous verriez beaucoup de versions de paquets beta
angular
. Vous pouvez soit revenir à la version version publiée , soit si, pour une raison quelconque, vous devez continuer à utiliser la version bêta, vous pouvez modifier ce fichier location.d.ts
fichier et remplacez les deux emplacements de SubcriptionLike
par Subscription
. Encore une fois, c’est un super hacky qui s’efface chaque fois que vous exécutez npm install
et uniquement si vous avez besoin de bouger avec le beta
pour une raison quelconque. Vos dépendances dans le package.json
devrait ressembler à ceci (bien que le mien soit conçu pour ionic
):
"dependencies": {
"@angular/cli": "^1.7.3",
"@angular/common": "^5.2.9",
"@angular/compiler": "^5.2.9",
"@angular/compiler-cli": "^5.2.9",
"@angular/core": "^5.2.9",
"@angular/forms": "^5.2.9",
"@angular/http": "^5.2.9",
"@angular/platform-browser": "^5.2.9",
"@angular/platform-browser-dynamic": "^5.2.9",
"@angular/tsc-wrapped": "^4.4.6",
"@ionic-native/core": "4.4.0",
"@ionic-native/splash-screen": "4.4.0",
"@ionic-native/status-bar": "4.4.0",
"@ionic/pro": "1.0.17",
"@ionic/storage": "2.1.3",
"ionic-angular": "3.9.2",
"ionicons": "3.0.0",
"rxjs": "^5.5.6",
"sw-toolbox": "3.6.0",
"zone.js": "0.8.18"
}
La dernière version de rxjs est la version 6.9.0. Pour résoudre ce problème, vous devez mettre à jour le paquet rxjs. courir ng update rxjs