You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Ng Generator does not save components in correct directory #6431
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.
@iamclaytonrayng 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.
@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.
@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
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?
@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.
Reacted by clay
angular-automatic-lock-bot commented on Sep 7, 2019
Activity
sumitarora commentedon May 25, 2017
@iamclaytonray
ngcommand runs relative to you project location. To generate components to a specific folder you can just dong g c components/hellowhich will generate hello component insrc\app\componentsfolder.iamclaytonray commentedon May 25, 2017
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.
sumitarora commentedon May 25, 2017
@iamclaytonray It is the default behavior as all other commands run based on root
ng s,ng b,ng testetc. no matter where in the project path you are.chriscurnow commentedon Aug 11, 2017
@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-createdirectory, given your approach I would have to writeng 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-nameI just tried the exact steps described by @iamclaytonray and the result was
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.
iamclaytonray commentedon Aug 11, 2017
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?
chriscurnow commentedon Aug 12, 2017
@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.
angular-automatic-lock-bot commentedon Sep 7, 2019
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.