我开始在AWS Lambda上部署演示Angular 9应用程序并提供SSR。为了实现这一点,我使用了@ng-toolkit/universal和@ng-toolkit/serverless。部署成功完成,但演示应用程序未打开。在调查AWS lambda日志后,发现以下异常。
这里是package.json,我在依赖项中添加了express js。
{
"name": "my-appg",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"build:browser:prod": "ng build --prod",
"build:browser:serverless": "ng build --prod --base-href /production/",
"build:serverless": "npm run build:browser:serverless && npm run build:server:serverless",
"build:prod": "npm run build:browser:prod && npm run build:server:prod",
"server": "node local.js",
"build:prod:deploy": "npm run build:prod && npm run deploy",
"build:serverless:deploy": "npm run build:serverless && npm run deploy",
"deploy": "serverless deploy --aws-profile leaks",
"build:server:prod": "webpack --config webpack.server.config.js --progress --colors",
"build:server:serverless": "webpack --config webpack.server.config.js --progress --colors"
},
"private": true,
"dependencies": {
"@angular-devkit/schematics": "^9.1.3",
"@angular/animations": "~9.0.5",
"@angular/common": "~9.0.5",
"@angular/compiler": "~9.0.5",
"@angular/core": "~9.0.5",
"@angular/forms": "~9.0.5",
"@angular/platform-browser": "~9.0.5",
"@angular/platform-browser-dynamic": "~9.0.5",
"@angular/router": "~9.0.5",
"@ng-toolkit/serverless": "^8.1.0",
"@ng-toolkit/universal": "^1.1.21",
"@schematics/angular": "^9.1.3",
"aws-serverless-express": "^3.3.6",
"cors": "^2.8.5",
"express": "^4.17.1",
"rxjs": "~6.5.4",
"serverless-api-compression": "^1.0.0",
"tslib": "^1.10.0",
"zone.js": "~0.10.2"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.900.5",
"@angular/cli": "~9.0.5",
"@angular/compiler-cli": "~9.0.5",
"@angular/language-service": "~9.0.5",
"@types/node": "^12.11.1",
"@types/jasmine": "~3.5.0",
"@types/jasminewd2": "~2.0.3",
"codelyzer": "^5.1.2",
"jasmine-core": "~3.5.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.3.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~2.1.0",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "^1.4.2",
"protractor": "~5.4.3",
"ts-node": "~8.3.0",
"tslint": "~5.18.0",
"typescript": "~3.7.5",
"ts-loader": "^6.2.1",
"webpack-cli": "^3.3.10",
"opencollective": "^1.0.3",
"serverless": "^1.60.0",
"serverless-apigw-binary": "^0.4.4"
}}
这是server.ts,也似乎还可以。
// generated by @ng-toolkit/serverless
import 'zone.js/dist/zone-node';
import 'reflect-metadata';
import * as express from 'express';
import * as cors from 'cors';
import * as compression from 'compression';
import {join} from 'path';
export const app = express();
app.use(compression());
app.use(cors());
const DIST_FOLDER = join(process.cwd(), 'dist/myPleaks-ng9');
app.get('*.*', express.static(join(DIST_FOLDER), {
maxAge: '1y'
}));
app.get('/*', (req, res) => {
res.sendFile(join(DIST_FOLDER + '/index.html'));
});
请先帮助我找出问题,]。>
我开始在AWS Lambda上部署演示Angular 9应用程序并提供SSR。为了实现这一点,我使用了@ ng-toolkit / universal和@ ng-toolkit / serverless。部署成功完成,但是...
我在github post上找到了解决方案,其中需要删除tsconfig文件中的“ esModuleInterop”:true。