angular-cli: Ng Generator does not always save components in correct directory

like #6431

Bug Report or Feature Request (mark with an x)

- [x] bug report -> please search issues before submitting
- [ ] feature request

Versions.

@angular/cli: 1.2.7 node: 6.10.1 os: darwin x64 @angular/animations: 4.3.3 @angular/cdk: 2.0.0-beta.8 @angular/common: 4.3.3 @angular/compiler: 4.3.3 @angular/core: 4.3.3 @angular/flex-layout: 2.0.0-beta.8 @angular/forms: 4.3.3 @angular/http: 4.3.3 @angular/material: 2.0.0-beta.8 @angular/platform-browser: 4.3.3 @angular/platform-browser-dynamic: 4.3.3 @angular/router: 4.3.3 @angular/cli: 1.2.7 @angular/compiler-cli: 4.3.3

Mac OS Sierra

Repro steps.

It’s hard to give repo steps because I haven’t discovered exactly what I have to do to reproduce. However, once the behaviour starts for a project, it continues to behave this way. The only way I have found to fix it is to start a completely new project and copy all my code over.

The issue is well described in #6431. In brief,

  1. I cd to a module directory in my project eg: app/admin

  2. I create a new component, eg ng g c users

Instead of creating the new component inside app/admin/users, it creates it inside app, eg app/users

In addition it creates an incorrect import statement in app.module, eg: import { UsersComponent } from './admin/src/app/users/users.component';

I have seen this happen twice now. I can be working with a project for months and months with it working correctly, then one day it just stops working the way it should. The only way I have been able to fix it is to generate a completely new project and copy all my code over to the new project.

The log given by the failure.

N/A

Desired functionality.

It should create the component inside the admin directory, eg: app/admin/users

and it should create a well formed import statement in admin.module, eg: import { UsersComponent } from './users/users.component';

Mention any other details that might be useful.

When I create a brand new project it does what I want it to. I have no idea what I do to provoke this behaviour. I have gone through the following files with a fine tooth comb and can’t find anything wrong:

  • .angular-cli.json
  • package.json
  • tsconfig.json
  • src/tsconfig.app.json

I can’t think of anywhere else to look.

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 21 (3 by maintainers)

Most upvoted comments

Any update on this issue?

@exequiel09 I was simply explaining why the error happens and how he can solve it for now. 😃 This is how ng is supposed to be used. From the looks of the other issues it seems like it’ll be “fixed” tho.

I don’t see what a complex folder structure has to do with anything other than auto-completing with tab in the terminal.

@hansl : It’s now May 2018. I reported this in August 2017. Last update here was Feb this year. In Feb you said you would get to it soon. Look I know the CLI team has been working hard and has made some fantastic additions and fixed up a lot of stuff. I’m not complaining but it would be nice to have some sort of update now and again 😄

@filipesilva - we have now just ticked over to February 2018.

It would be great if you could tell us SOMETHING, ANYTHING.

This is a priority 1, severity 5 issue

Hi guys. Can you tell us ANYTHING about progress on this issue.

It was first raised in August. It is no 21st December. It is marked as urgent. But we haven’t heard anything???

@grizzm0 this is not how Ng is supposed to work. For the last several months it has worked as I wanted it to in my project. If I start a brand new project, it works how I want it to. What I don’t understand here is why it just starts happening after it has been working perfectly for months on end. In terms of a complex folder structure, try writing ng g c contract/subcontract/subcontract-new/supplier-select/new-supplier/new-supplier-with-name/new-supplier-result I know at least one developer who discarded angular in favour of react on the basis of this issue alone.