`Invalid left-hand side of assignment error` when deploying universal app via function hosting
- 主要言語
- TypeScript
- スター
- 7.8k
- フォーク
- 2.2k
- 平均マージ
- 22時間 28分
- マージ済み PR(30日)
- 6
説明
### Version info
``` shell
$ ng version
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 15.0.4
Node: 16.13.0
Package Manager: npm 9.1.2
OS: win32 x64
Angular: 15.0.4
... animations, cli, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, platform-server
... router
Package Version
---------------------------------------------------------
@angular-devkit/architect 0.1500.4
@angular-devkit/build-angular 15.0.4
@angular-devkit/core 15.0.4
@angular-devkit/schematics 15.0.4
@angular/fire 7.5.0
@nguniversal/builders 15.0.0
@nguniversal/express-engine 15.0.0
@schematics/angular 15.0.4
rxjs 7.5.7
typescript 4.8.4
```
**Other (e.g. Ionic/Cordova, Node, browser, operating system):**
### How to reproduce these conditions
**Failing test unit, Stackblitz demonstrating the problem**
**Steps to set up and reproduce**
1. `ng new `
2. `ng add @nguniversal/express-engine`
3. `ng add @angular/fire`
4. choose Functions option for hosting
5. `ng deploy`
**Sample data and security rules**
### Debug output
** Terminal output **
``` shell
$ ng deploy
Using firebase-tools version 11.19.0
Logged into Firebase as jakehockey10@gmail.com.
✔ Server application bundle generation complete.
✔ Browser application bundle generation complete.
Initial Chunk Files | Names | Raw Size
main.js | main | 5.42 MB |
| Initial Total | 5.42 MB
Build at: 2022-12-22T23:49:41.863Z - Hash: e27452329971ab90 - Time: 20501ms
✔ Copying assets complete.
✔ Index html generation complete.
4 unchanged chunks
Build at: 2022-12-22T23:49:42.663Z - Hash: 8231762c55b7ebaa - Time: 21265ms
Warning: bundle initial exceeded maximum budget. Budget 500.00 kB was not met by 28.71 kB with a total of 528.71 kB.
✔ Prerendering routes to C:\Users\jakeh\Source\Repos\ng-router-animations\dist\ng-router-animations\browser complete.
npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead
=== Deploying to 'jakehockey10-fireship'...
i deploying functions, hosting
i functions: preparing codebase default for deployment
i functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i functions: ensuring required API cloudbuild.googleapis.com is enabled...
i artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled...
+ artifactregistry: required API artifactregistry.googleapis.com is enabled
+ functions: required API cloudfunctions.googleapis.com is enabled
+ functions: required API cloudbuild.googleapis.com is enabled
! functions: package.json indicates an outdated version of firebase-functions. Please upgrade using npm install --save firebase-functions@latest in your functions directory.
! functions: Please note that there will be breaking changes when you upgrade.
Error when trying to deploy:
Failed to load function definition from source: Failed to generate manifest from function source: SyntaxError: Invalid left-hand side in assignment
```
** Generated file (dist/ng-router-animations/functions/index.js) **
``` javascript
const functions = require('firebase-functions');
// Increase readability in Cloud Logging
require("firebase-functions/lib/logger/compat");
const expressApp = require('./dist/ng-router-animations/server/main').app();
exports.ssr_ng-router-animations = functions
.region('us-central1')
.runWith({})
.https
.onRequest(expressApp);
```
** Screenshots **

### Expected behavior
Expected behavior is: not to create an export variable with hyphens.
### Actual behavior
Actual behavior is: variable with hyphens created, causing invalid javascript.
コントリビューションガイド
調査の方向性
生成された dist/ng-router-animations/functions/index.js から始め、AngularFire のデプロイ統合における ng deploy の関数生成エントリポイントを追跡します。記載されている Angular CLI と Firebase のバージョンを使用し、ハイフンを含むアプリ名で再現したうえで、生成された関数のエクスポートが有効な JavaScript であり、デプロイが成功することを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- angular, firebase, typescript
- 領域
- build-system, cloud
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- 明確に書かれている
- 初心者へのやさしさ
- 45/100