angular / angular/angular-cli

ng generate module produce wrong code for specific code pattern

Đang mở
#15,923 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
area: @schematics/angular freq1: low severity3: broken type: bug/fix
Ngôn ngữ chính
TypeScript
Star
27k
Fork
11.8k
Merge trung bình
14 giờ 23 phút
Pull request đã merge (30 ngày)
162

Mô tả

# 🐞 Bug report

### Command (mark with an `x`)

```
- [ ] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [x] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc
```

### Is this a regression?

No.

### Description

The `ng generate module` produce wrong code.

## 🔬 Minimal Reproduction

```sh
ng new demo1 --routing --style css
cd demo1
ng g c test1
```

Add route config in `src/app/app-routing.module.ts` just like below:

```ts
const route1 = { path: 'test1', component: Test1Component };
const routes: Routes = [
route1
];
```

Then I creating an lazy-loaded module named `test`.

```sh
ng g module test --route test --module app
```

Then the route config will turn into this. And this is wrong.

```ts
const route1 = { path: 'test1', component: Test1Component };
const routes: Routes = [,
{ path: 'test', loadChildren: () => import('./test/test.module').then(m => m.TestModule) }
route1
];
```

## 🔥 Exception or Error



ERROR in Cannot read property 'loadChildren' of undefined

## 🌍 Your Environment



Angular CLI: 8.3.13
Node: 10.16.3
OS: win32 x64
Angular: 8.2.11
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.803.13
@angular-devkit/build-angular 0.803.13
@angular-devkit/build-optimizer 0.803.13
@angular-devkit/build-webpack 0.803.13
@angular-devkit/core 8.3.13
@angular-devkit/schematics 8.3.13
@angular/cli 8.3.13
@ngtools/webpack 8.3.13
@schematics/angular 8.3.13
@schematics/update 0.803.13
rxjs 6.4.0
typescript 3.5.3
webpack 4.39.2

**Anything else relevant?**

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Reproduce the issue with the listed ng new, ng g c, and ng g module commands, then inspect src/app/app-routing.module.ts before and after generation. Done means the lazy-loaded route is inserted without invalid commas or dropped separators, while the existing route1 remains valid.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
angular, typescript
Lĩnh vực
cli, tooling
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.