Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upGenerated angular.json file does not correctly lower case the application name #17579
Comments
Two alternatives for more consistent behavior would be:
The second alternative would be more implicit, but also less surprising for folks used to the partial name transform we do right now only for the package name. |
Thank you. I'd like to see #2 as it is more friendly for beginners and for those used to being able to use mixed case project names as they can now. |
I am claiming this issue. I have started to work on the fix. |
I may be wrong, as I'm not familiar with how angular-cli work under the hood, but if angular uses project name for file structure - lower casing it could lead to bugs. For example this one: And by the way a question, @mgechev, although @karthick-manoharan claimed this issue, I was curious to take a look on the angular-cli source code and for now, I event couldn't figure out where the |
@vltansky The fix will be applicable only to the workspace name occurrences in angular.json file. I couldn't relate the StackOverflow issue to this fix. Kindly correct me if i am missing any of your ideas. My perception is the files under |
The application schematic adds the project to the workspace using angular-cli/packages/schematics/angular/application/index.ts Lines 290 to 294 in 1d2e7bb There's a You may want to apply the appropriate string transform function to |
@Splaktar Thank you for the pointers. I am leveraging In addition to the change in |
@karthick-manoharan I can't think of a reason why any of the other schematics would need to be changed in general. The only other schematic that should create a project is the library schematic. Have you tested if that accepts the invalid format? If you have some other lines of code where you think the name might need to be transformed, feel free to post them here along with your reasoning. |
@kyliau @karthick-manoharan How can I help? |
using the current version of angular at the time of posting this, there is no fix for the bug ? |
I haven't seen any PR for this yet. There's not one linked to this issue. |
Somebody has created this somewhat related PR a few hours ago: #17949 |
Is anybody working on this? Would love to try and make a PR for this. As I understand the issue correct we should lowercase the name within the |
@Jefiozie I don't believe so. #17579 (comment) and the following comment cover those details (it's not just calling |
Hi all,
The above schema also doesn't account for other valid project names such as The above doesn't match the actual RegExp used to valid project names Also there seems to be a misalignment between the library and application schematic, where the library folder is always dasherized, while in the application it's not.
|
Hi @alan-agius4 Thank you for showing us these points of misalignment, I have done some changes already locally to the code and made the same conclusion as you. What would you advise as the best approach for solving this issue? Personally I never use a |
@Jefiozie, project names are valid both in camel case or kebeb case. Therefore we'd need to update the above mention RegeExp. When it comes to project directories, I am inclined towards always dasherizing the project folder name to align with other schematics where the folder name is always dasherized, that being said It's not a biggy, as long as the schema validation is fixed.
This is so also personal preference, I always use kebab casing when it comes to file and directory naming. |
Command (mark with an
x
)Is this a regression?
I'm not certain whether this is a regression. I don't recall seeing the issue. No one had reported it to me previously. But that doesn't mean it didn't exist.
Description
When you create a new Angular project using
ng new
with an upper case or mixed case name, the Angular CLI correctly converts the name to lower case for the keys in the package.json file. It does not convert the name to lower case for the keys in the angular.json file. See the "Minimal Reproduction" for screen shots.ng new Hello-World
Resulting package.json file correctly lower cases the project name:

Resulting angular.json file does not lower case the project name, resulting in an error (see below):

Notice the resulting error:

Property Hello-World is not allowed
Anything else relevant?