ここでこの例を追跡しようとしています https://www.youtube.com/watch?v=gxCu5TEmxXE ですが、tsc -p
を実行するとエラーが発生します。インポートする必要があるものはありますか?
エラー:
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ファイル
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"
]
}
私は次の後に同じ問題に直面しました
よく検索した結果、このチュートリアルの手順でインストールされたRxjsパッケージはAngular 6でサポートされていないことがわかりました。
Angular 6はRxJS 5.5では動作しませんが、RxJS 6では動作します。
npm i rxjs@6
CLIで上記のコマンドを実行すると、問題が解決するはずです。私の場合はそうでした。
package.json
を見ると、多くのbeta
angular
パッケージバージョンが表示されるはずです。 リリースバージョン にダウングレードするか、何らかの奇妙な理由でベータバージョンを使い続ける必要がある場合は、そのlocation.d.ts
ファイルを編集して、SubcriptionLike
は、そのファイルでSubscription
だけに使用されます。繰り返しますが、これは非常にハッキングされ、npm install
を実行するたびに消去されます。何らかの理由でbeta
をいじる必要がある場合にのみ使用してください。 package.json
の依存関係は次のようになります(ただし、私のものは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"
}
Rxjsの最新バージョンは6.9.0です。この問題を修正するには、rxjsパッケージを更新する必要があります。 ng update rxjs
を実行します