Skip to content

Ng Generator does not save components in correct directory #6431

Closed

Description

@iamclaytonray

Bug Report or Feature Request (mark with an x)

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

Versions.

@angular/cli: 1.0.3
node: 7.10.0
os: darwin x64
@angular/common: 4.1.3
@angular/compiler: 4.1.3
@angular/core: 4.1.3
@angular/forms: 4.1.3
@angular/http: 4.1.3
@angular/platform-browser: 4.1.3
@angular/platform-browser-dynamic: 4.1.3
@angular/router: 4.1.3
@angular/cli: 1.0.3
@angular/compiler-cli: 4.1.3

Repro steps.

ng new my-app
cd my-app/src/app && mkdir components
cd components
ng g component posts

Those are the only steps I took. I didn't touch the code. I just ran those commands. However, the posts component did not save under the components directory. They were saved in the app directory, even though I was in the components directory when running the generator. I am pretty new to Angular (first day) so I am not sure if that is the expected result or not. I wouldn't imagine that being the case, though.

The log given by the failure.

No logs.

Desired functionality.

The answer is for both questions. When you are in a specific directory and run ng g component component-name, the generated files should be a child of your current directory via the command line.

Mention any other details that might be useful.

Here's a screenshot of the file structure.
screen shot 2017-05-23 at 7 56 55 pm

Activity

  1. added
    P3An issue that is relevant to core functions, but does not impede progress. Important, but not urgent
    on May 24, 2017
  2. sumitarora commented on May 25, 2017

    @sumitarora
    Contributor

    @iamclaytonray ng command runs relative to you project location. To generate components to a specific folder you can just do ng g c components/hello which will generate hello component in src\app\components folder.

  3. iamclaytonray commented on May 25, 2017

    @iamclaytonray
    Author

    Ahh, okay. That worked for me. Maybe that could be a future feature? It seems like it would be more logical to be absolute over relative.

  4. sumitarora commented on May 25, 2017

    @sumitarora
    Contributor

    @iamclaytonray It is the default behavior as all other commands run based on root ng s, ng b, ng test etc. no matter where in the project path you are.

  5. chriscurnow commented on Aug 11, 2017

    @chriscurnow

    @sumitarora I don't accept the behaviour you describe is the default behaviour and if it was the default behaviour, it should not be.

    I have been using angular cli since somewhere in the beta program. It has never worked this way. CLI always generates the object (component, service, module etc) in the current directory.

    It is would be an absolute pain having to write out the path in full every time. Take an example from my current project, to create a new component in the supplier-create directory, given your approach I would have to write

    ng g c contract/subcontract/subcontract-edit/subcontract-new/supplier-select/supplier-create/new-component-name.

    We have NEVER had to do this.

    I have always been able to navigate to the directory (in this case `supplier-create') and type

    ng g c new-component-name

    I just tried the exact steps described by @iamclaytonray and the result was

    create src/app/components/posts/posts.component.css
      create src/app/components/posts/posts.component.html
      create src/app/components/posts/posts.component.spec.ts
      create src/app/components/posts/posts.component.ts
      update src/app/app.module.ts
    

    Which is exactly what I would expect and indeed hope for.

    @iamclaytonray I hope you have worked out by now that you can indeed to what you expected to do. If not, there is something wrong somewhere.

  6. iamclaytonray commented on Aug 11, 2017

    @iamclaytonray
    Author

    I didn't think or expect that to be the behavior, especially for Google's codebase but I just dealt with it. Honestly, I didn't entertain Angular after that and moved to React. I could test it out again and see what the results are, if you'd like?

  7. chriscurnow commented on Aug 12, 2017

    @chriscurnow

    @iamclaytonray - no problems. No need to test it out. I'm quite happy it works. I just didn't want others coming to this answer and think Angular was harder than it was.

  8. angular-automatic-lock-bot commented on Sep 7, 2019

    @angular-automatic-lock-bot

    This issue has been automatically locked due to inactivity.
    Please file a new issue if you are encountering a similar or related problem.

    Read more about our automatic conversation locking policy.

    This action has been performed automatically by a bot.

  9. locked and limited conversation to collaborators on Sep 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P3An issue that is relevant to core functions, but does not impede progress. Important, but not urgentseverity3: broken

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions