New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Creating a project with existing directory => impossible? #9655
Comments
Unfortunately, the error messaging is currently overly verbose and repeats. There is on ongoing work to improve the error messaging. In this case the the validation is also overly strict and the actual cause is the |
Unfortunately, when calling
|
I just gave it another run and I found out that it works if I use a relative path out of a parent directory. Meaning, when executing the command like this:
it works fine. However, the original case fails with the described error message:
And the following new test case fails as well, but with a new error message:
It seems like there are some problems with path resolving? I'll update my original post to include the workaround for people that land here by google or similar. |
You're right. Both |
As already stated in my original post, absolute paths do not work. I tried it with both |
Absolutes paths work on Mac and linux; the windows drive letter appears to be the problem in that scenario. The initial errors are due to validation of the string argument. The last issue described is actually an unrelated, different issue with an origin in the initialization of the schematic engine. |
I also encountered this problem: trying to create from within the project folder with but this worked (without the dot): |
Just to confirm that absolute paths are NOT working on Ubuntu. Both a root (/) and a home (¬) path don't give the error but actually create a sub-path equivalent to the absolute path underneath the current directory (!). So if you are in /myProject/testProject and you do |
This is a serious issue that was created with the 1.7.0 release. Some companies have very restricted environments and installing @angular/cli globally is not an option. In other environments programmers work on multiple projects. How @angular/cli creates files could change as versions of @angular change, and installing @angular/cli globally may force the programmer into a version that is not backwards compatible for old projects. Up to version 1.6.8 you could install @angular/cli locally in the project folder and then create the project in the same folder with "--directory ." Somebody added path checking to 1.7.0, and it refused to allow . or .. in the path name. This functionality needs to be restored ASAP. |
I just ran into this on Windows 8.1 using latest Webstorm using their 'New Project' which creates with angular-cli. "C:\Program Files\nodejs\node.exe" C:\Users\granite\AppData\Roaming\npm\node_modules@angular\cli\bin\ng new Testing123 --dir=. Errors:Errors: .directory should match format "path" .directory should match format "path" Done |
I can confirm that neither relative nor absolute paths are currently working in Windows 10 now. I've done this in the past successfully. Seems to me that the latest update broke it. I thought I was crazy until I found this |
Me too, I'm using with IntelliJ IDEA. The solution is open the terminal and create manually. Not so hard to continue. |
I have the same issue with @aslthiago . |
same as @aslthiago here in IntellijIdea |
ng-cli version 1.7.1
|
Webstorm 2017.3.4 Angular CLI: 1.7.2 /usr/bin/node /usr/lib/node_modules/@angular/cli/bin/ng new untitled --dir=. |
Angular 6.0.0 beta 4 is also failing with this. |
SargTeX: You labeled this issue as a feature request, but it's definitely a bug. Or a feature that someone thought we needed, but is impeding a significant number of people. Can you relabel as a bug, and maybe freq:high so that someone will notice and address it? |
Hi @clydin, @Brocco, @hansl! |
I've upgrade from Angular CLI 1.6.8 to Angular CLI: 1.7.3 this morning. |
A work around to use the Angular CLI to generate projects in WebStorm (and other JetBrains IDEs) is to create an empty project, open terminal and cd to parent directory, then run
where DIR_NAME is the project you created, then cd back into the folder and continue to use WebStorm as usual. |
That isn't a solution if you cannot install the command globally, and in a lot of locked-down development environments you can't. Besides, there are a lot of other good reasons you should not install it globally. When the instructions tell you to do so, they are assuming that you only want one version of the command on your computer, and that does not happen in large organizations. |
@jmussman I don't think the bug being reported here (inability to use |
Question then: where is ng being run from in your example?
From: Darren Mothersele <notifications@github.com>
Reply-To: angular/angular-cli <reply@reply.github.com>
Date: Friday, March 9, 2018 at 9:01 AM
To: angular/angular-cli <angular-cli@noreply.github.com>
Cc: Joel Mussman <jmussman@smallrock.net>, Mention <mention@noreply.github.com>
Subject: Re: [angular/angular-cli] Creating a project with existing directory => impossible? (#9655)
@jmussman<https://github.com/jmussman> I don't think the bug being reported here (inability to use --directory=.) is dependent on if you have ng installing globally or not. So my advice converts to however you're running the ng new command without installing globally.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<#9655 (comment)>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AF4nuw6mef7zkvqSHGpdzr_vextOFgAqks5tcosogaJpZM4SI1Mi>.
|
ng --version: 6.0.0 Repro steps
Observed behaviorSchematic input does not validate against the Schema: {"name":"ng-md-01","version":"6.0.0","newProjectRoot":"projects","skipInstall":false,"linkCli":false,"skipGit":false,"commit":null} Data path ".name" should match format "html-selector". Desired behaviorAngular CLI should have created the directory ng-md-01 and then template out a new application. #Also failed with this command
Able to succeed with thisng new md-intro Possible problemThe use of numbers in name of application?? |
seems like downgrading to 1.6.8 is solution for now npm uninstall -g @angular/cli |
Do not use any number in the application name. ng new latest-app (This works fine) ng new 60-app (This will fail with below error) Schematic input does not validate against the Schema: {"name":"60-app","version":"6.0.8","newProjectRoot":"projects","skipInstall":false,"linkCli":false,"skipGit":false,"commit":null} Data path ".name" should match format "html-selector". |
I could resolve the error by changing |
ng new does not like the underscore " _ " so test_essentials should be put down as testEssentials |
This functionality is also hit and miss across all 6.x versions Tested with the following: npm show @angular/cli@6.* version | \
while read pkg version;
do
echo npm install -g ${pkg};
echo ng --version;
v=$(echo ${version} | awk -F\' '{ gsub(/\./,""); print $2; }');
app="ngCli${v}";
echo mkdir -p ${app};
echo pushd ${app};
echo ng new \"${app}\" --directory=\"./\" -d;
echo popd;
echo echo $(printf "%0.s-" {1..25});
echo echo;
done | bash -x
versions and output
output: $ ng new ngCli600 --directory=./ -d
Schematic input does not validate against the Schema: {"dryRun":true,"directory":"./","skipGit":true,"version":"6.0.0","skipInstall":false,"linkCli":false,"commit":true,"newProjectRoot":"projects","inlineStyle":false,"inlineTemplate":false,"routing":false,"prefix":"app","style":"css","skipTests":false}
Errors:
Data path ".directory" should match format "path".
output: $ ng new ngCli601 --directory=./ -d
Schematic input does not validate against the Schema: {"dryRun":true,"directory":"./","skipGit":true,"version":"6.0.1","skipInstall":false,"linkCli":false,"commit":true,"newProjectRoot":"projects","inlineStyle":false,"inlineTemplate":false,"routing":false,"prefix":"app","style":"css","skipTests":false}
Errors:
Data path ".directory" should match format "path".
output: $ ng new ngCli602 --directory=./ -d
CREATE README.md (1025 bytes)
CREATE angular.json (3420 bytes)
CREATE package.json (1313 bytes)
CREATE tsconfig.json (384 bytes)
CREATE tslint.json (2805 bytes)
CREATE .editorconfig (245 bytes)
CREATE .gitignore (503 bytes)
CREATE src/environments/environment.prod.ts (51 bytes)
CREATE src/environments/environment.ts (631 bytes)
CREATE src/favicon.ico (5430 bytes)
CREATE src/index.html (295 bytes)
CREATE src/main.ts (370 bytes)
CREATE src/polyfills.ts (3194 bytes)
CREATE src/test.ts (642 bytes)
CREATE src/assets/.gitkeep (0 bytes)
CREATE src/styles.css (80 bytes)
CREATE src/browserslist (375 bytes)
CREATE src/karma.conf.js (964 bytes)
CREATE src/tsconfig.app.json (194 bytes)
CREATE src/tsconfig.spec.json (282 bytes)
CREATE src/tslint.json (314 bytes)
CREATE src/app/app.module.ts (314 bytes)
CREATE src/app/app.component.css (0 bytes)
CREATE src/app/app.component.html (1141 bytes)
CREATE src/app/app.component.spec.ts (986 bytes)
CREATE src/app/app.component.ts (207 bytes)
CREATE e2e/protractor.conf.js (752 bytes)
CREATE e2e/src/app.e2e-spec.ts (299 bytes)
CREATE e2e/src/app.po.ts (208 bytes)
CREATE e2e/tsconfig.e2e.json (213 bytes)
NOTE: Run with "dry run" no changes were made.
output: $ ng new ngCli603 --directory=./ -d
CREATE README.md (1025 bytes)
CREATE angular.json (3420 bytes)
CREATE package.json (1313 bytes)
CREATE tsconfig.json (384 bytes)
CREATE tslint.json (2805 bytes)
CREATE .editorconfig (245 bytes)
CREATE .gitignore (503 bytes)
CREATE src/environments/environment.prod.ts (51 bytes)
CREATE src/environments/environment.ts (631 bytes)
CREATE src/favicon.ico (5430 bytes)
CREATE src/index.html (295 bytes)
CREATE src/main.ts (370 bytes)
CREATE src/polyfills.ts (3194 bytes)
CREATE src/test.ts (642 bytes)
CREATE src/assets/.gitkeep (0 bytes)
CREATE src/styles.css (80 bytes)
CREATE src/browserslist (375 bytes)
CREATE src/karma.conf.js (964 bytes)
CREATE src/tsconfig.app.json (194 bytes)
CREATE src/tsconfig.spec.json (282 bytes)
CREATE src/tslint.json (314 bytes)
CREATE src/app/app.module.ts (314 bytes)
CREATE src/app/app.component.css (0 bytes)
CREATE src/app/app.component.html (1141 bytes)
CREATE src/app/app.component.spec.ts (991 bytes)
CREATE src/app/app.component.ts (207 bytes)
CREATE e2e/protractor.conf.js (752 bytes)
CREATE e2e/src/app.e2e-spec.ts (299 bytes)
CREATE e2e/src/app.po.ts (208 bytes)
CREATE e2e/tsconfig.e2e.json (213 bytes)
NOTE: Run with "dry run" no changes were made.
output: $ ng new ngCli604 --directory=./ -d
Schematic input does not validate against the Schema: {"dryRun":true,"directory":"./","skipGit":true,"version":"6.0.4","skipInstall":false,"linkCli":false,"commit":true,"newProjectRoot":"projects","inlineStyle":false,"inlineTemplate":false,"routing":false,"prefix":"app","style":"css","skipTests":false}
Errors:
Data path "" should NOT have additional properties(dryRun).
output: $ ng new ngCli605 --directory=./ -d
CREATE README.md (1025 bytes)
CREATE angular.json (3420 bytes)
CREATE package.json (1313 bytes)
CREATE tsconfig.json (384 bytes)
CREATE tslint.json (2805 bytes)
CREATE .editorconfig (245 bytes)
CREATE .gitignore (503 bytes)
CREATE src/environments/environment.prod.ts (51 bytes)
CREATE src/environments/environment.ts (631 bytes)
CREATE src/favicon.ico (5430 bytes)
CREATE src/index.html (295 bytes)
CREATE src/main.ts (370 bytes)
CREATE src/polyfills.ts (3194 bytes)
CREATE src/test.ts (642 bytes)
CREATE src/assets/.gitkeep (0 bytes)
CREATE src/styles.css (80 bytes)
CREATE src/browserslist (375 bytes)
CREATE src/karma.conf.js (964 bytes)
CREATE src/tsconfig.app.json (194 bytes)
CREATE src/tsconfig.spec.json (282 bytes)
CREATE src/tslint.json (314 bytes)
CREATE src/app/app.module.ts (314 bytes)
CREATE src/app/app.component.css (0 bytes)
CREATE src/app/app.component.html (1141 bytes)
CREATE src/app/app.component.spec.ts (991 bytes)
CREATE src/app/app.component.ts (207 bytes)
CREATE e2e/protractor.conf.js (752 bytes)
CREATE e2e/src/app.e2e-spec.ts (299 bytes)
CREATE e2e/src/app.po.ts (208 bytes)
CREATE e2e/tsconfig.e2e.json (213 bytes)
NOTE: Run with "dry run" no changes were made.
output: $ ng new ngCli607 --directory=./ -d
CREATE README.md (1025 bytes)
CREATE angular.json (3566 bytes)
CREATE package.json (1313 bytes)
CREATE tsconfig.json (384 bytes)
CREATE tslint.json (2805 bytes)
CREATE .editorconfig (245 bytes)
CREATE .gitignore (503 bytes)
CREATE src/environments/environment.prod.ts (51 bytes)
CREATE src/environments/environment.ts (631 bytes)
CREATE src/favicon.ico (5430 bytes)
CREATE src/index.html (295 bytes)
CREATE src/main.ts (370 bytes)
CREATE src/polyfills.ts (3194 bytes)
CREATE src/test.ts (642 bytes)
CREATE src/assets/.gitkeep (0 bytes)
CREATE src/styles.css (80 bytes)
CREATE src/browserslist (375 bytes)
CREATE src/karma.conf.js (964 bytes)
CREATE src/tsconfig.app.json (194 bytes)
CREATE src/tsconfig.spec.json (282 bytes)
CREATE src/tslint.json (314 bytes)
CREATE src/app/app.module.ts (314 bytes)
CREATE src/app/app.component.css (0 bytes)
CREATE src/app/app.component.html (1141 bytes)
CREATE src/app/app.component.spec.ts (991 bytes)
CREATE src/app/app.component.ts (207 bytes)
CREATE e2e/protractor.conf.js (752 bytes)
CREATE e2e/src/app.e2e-spec.ts (304 bytes)
CREATE e2e/src/app.po.ts (208 bytes)
CREATE e2e/tsconfig.e2e.json (213 bytes)
NOTE: Run with "dry run" no changes were made.
output: $ ng new ngCli608 --directory=./ -d
CREATE README.md (1025 bytes)
CREATE angular.json (3566 bytes)
CREATE package.json (1313 bytes)
CREATE tsconfig.json (384 bytes)
CREATE tslint.json (2805 bytes)
CREATE .editorconfig (245 bytes)
CREATE .gitignore (503 bytes)
CREATE src/environments/environment.prod.ts (51 bytes)
CREATE src/environments/environment.ts (631 bytes)
CREATE src/favicon.ico (5430 bytes)
CREATE src/index.html (295 bytes)
CREATE src/main.ts (370 bytes)
CREATE src/polyfills.ts (3194 bytes)
CREATE src/test.ts (642 bytes)
CREATE src/assets/.gitkeep (0 bytes)
CREATE src/styles.css (80 bytes)
CREATE src/browserslist (375 bytes)
CREATE src/karma.conf.js (964 bytes)
CREATE src/tsconfig.app.json (194 bytes)
CREATE src/tsconfig.spec.json (282 bytes)
CREATE src/tslint.json (314 bytes)
CREATE src/app/app.module.ts (314 bytes)
CREATE src/app/app.component.css (0 bytes)
CREATE src/app/app.component.html (1141 bytes)
CREATE src/app/app.component.spec.ts (991 bytes)
CREATE src/app/app.component.ts (207 bytes)
CREATE e2e/protractor.conf.js (752 bytes)
CREATE e2e/src/app.e2e-spec.ts (304 bytes)
CREATE e2e/src/app.po.ts (208 bytes)
CREATE e2e/tsconfig.e2e.json (213 bytes)
NOTE: Run with "dry run" no changes were made.
output: $ ng new ngCli610 --directory=./ -d
Path "/README.md" already exist.
output: $ ng new ngCli611 --directory=./ -d
Path "/README.md" already exist. |
With Latest angular version I guess from V12 you can use: |
Versions
ng --version: 1.7.0
npm --version: 5.0.3
node --version: v6.9.5
OS: Windows 10, 64-bit
Repro steps
$ mkdir test
$ cd test
$ npm install -g @angular/cli
$ ng new appName --directory ./
The last step is nowhere officially documented, however, multiple GitHub-issues linked to this, including:
In lack of a documented possibility to create an angular project in an existing directory, I used the above solution.
Observed behavior
(Yes, the command results in exactly above output - the error message is repeated twice)
Desired behavior
I would expect that angular generates files for a project in the folder, and of course no error message resulting. The files should be located directly in the "test"-folder and not be placed in a subfolder, e.g. "test/appName".
Mention any other details that might be useful (optional)
Using an absolute path instead of a relatively one (in the ng new command) does not change anything, apart from the path-contents of the error message.
Using the command like
$ ng new appName --directory .
(without the/
in the directory path) results in the same error.Trying to reference the directory from itself by relative path (used as possible workaround) fails with a new error message:
If there is any other information I might help you with, please tell me.
Workaround
The same result can be achieved by changing into the parent directory and commanding angular to create the app in the sub-directory:
The text was updated successfully, but these errors were encountered: