我有一个Ionic4 / Angular 7/8应用程序。我想创建一个组件,并使用Angular CLI 7.3.9和8.1.3在特定模块中对其进行自动配置,但始终收到错误“文件...不存在”。
本文中的任何答案均无效。 Create component to specific module with Angular-CLI
重现此问题的步骤:
ng g module pets
这在[my_project_dir] / src / app / pets目录中创建了一个名为pets.module.ts的文件。
ng g component pets/cat --module=pets.module.ts
ng g component pets/cat --module=pets/pets.module.ts
从我的项目目录或[my_project_dir] / src / app目录执行上述命令会触发此错误消息文件pets / pets.module.ts不存在。
在7.3.9中发出此命令ng g component pets/cat -m pets.module.ts
创建了组件cat,但pets.module.ts或app.module.ts均未更新。
在8.1.3中发出命令ng g component pets/cat -m pets.module.ts
导致此错误消息:未知选项:'-m'
作为一种解决方法,我可以手动更新module.ts文件,但想知道解决方案以供将来参考。任何帮助表示赞赏。谢谢。
更新时间为10/16/2019 6:30 pm
如果使用ng new app-name
命令创建了Angular应用程序,则可以使用,但是如果通过ionic start app-name blank --type=angular
命令生成了Angular应用程序,则可以使用否,尽管项目结构在两者之间非常相似这两个应用。
答案 0 :(得分:0)
ng new petstore --skip-install
cd petstore
ng g module pets
ng g component pets/cat -m pets
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CatComponent } from './cat/cat.component';
@NgModule({
declarations: [CatComponent], // <- note this
imports: [
CommonModule
]
})
export class PetsModule { }
ng version
Angular CLI: 8.3.10
Node: 10.15.3
OS: linux x64
Angular: 8.2.11
由于没有安装ng-cli v8.1.3,因此无法复制。
“为我工作”。
尝试发出与我完全相同的命令。也就是仅命名模块pets
而不是pets.module.ts
或其他
tree src/app
src/app
├── app.component.css
├── app.component.html
├── app.component.spec.ts
├── app.component.ts
├── app.module.ts
└── pets
├── cat
│ ├── cat.component.css
│ ├── cat.component.html
│ ├── cat.component.spec.ts
│ └── cat.component.ts
└── pets.module.ts
2 directories, 10 files
答案 1 :(得分:0)
如果您已经创建了模块,则无需指定模块。
ng g m pets
这应该生成一个名为pets的文件夹,其中包含一个名为pets.module.ts的文件
然后在运行时
ng g c pets/cat
它应该在pets / cat文件夹内生成cat.component.ts。
我建议将您的结构进行一些更改,例如:
app/
modules/
pets/
components/
cat/
cat.component.[ts, html, scss, spec.ts]
pets.module.ts
pets.component.[ts, html, scss, spec.ts]
app.component.ts
app.component.html
app.module.ts
您可以这样做:先ng g m modules/pets
,然后ng g c modules/pets/components
,或使用--module(-m)标志
希望有帮助
答案 2 :(得分:0)
我也有同样的问题,我使用下面的命令修复了它。
ng g component pets/cat --module=/src/app/pets/pets.module.ts --export=true
或
ionic g component pets/cat --module=/src/app/pets/pets.module.ts --export=true
答案 3 :(得分:0)
Nirmal的答案应该是公认的,用最新的ionic 5 + angular 10确认
<块引用>我也有同样的问题,我用下面的命令修复了它。
ng g component pets/cat --module=/src/app/pets/pets.module.ts --export=true
<块引用>
或
ionic g component pets/cat --module=/src/app/pets/pets.module.ts --export=true