Angular 2中调用Shared文件夹文件报错:无法找到模块 '../shared/activities'
我来帮你捋捋这个问题,看起来是路由导航时找不到对应的组件模块,咱们一步步排查解决:
排查步骤与解决方案
1. 修正路由配置的组件导入路径
你遇到的Cannot find module '../shared/activities'错误,大概率是组件导入路径写错了。根据你的文件夹结构,Shared是在User文件夹内部的,而../会让代码跳出User目录去寻找根目录下的Shared,这显然不对。
如果你的路由模块(比如user-routing.module.ts)放在User文件夹下,正确的导入路径应该是指向User内部的Shared文件夹:
// 示例:路由模块在User目录下时的正确导入 import { ActivitiesComponent } from './shared/activities/activities.component';
同时要确保路由配置里的路径和组件对应:
const routes: Routes = [ // ...其他路由规则 { path: 'auditlog', component: ActivitiesComponent } ];
2. 确认组件已在模块中正确声明/导出
如果Activities组件属于Shared模块,你需要保证它被正确注册:
- 若你有
SharedModule,要在模块的declarations里添加该组件,并且在exports中导出,这样UserModule才能复用它:
之后别忘了在@NgModule({ declarations: [ActivitiesComponent], exports: [ActivitiesComponent] }) export class SharedModule { }UserModule里导入SharedModule。 - 若没有单独的
SharedModule,直接把ActivitiesComponent添加到UserModule的declarations数组里即可。
3. 检查组件文件的完整性
确认activities文件夹下存在完整的组件文件:
比如必须有activities.component.ts,且文件内正确关联了HTML和CSS:
import { Component } from '@angular/core'; @Component({ selector: 'app-activities', templateUrl: './activities.component.html', // 路径指向同目录的HTML styleUrls: ['./activities.component.css'] // 路径指向同目录的CSS }) export class ActivitiesComponent { }
4. 核对routerLink与路由路径
你的HTML里用的是routerLink="/auditlog",要确保路由配置里的path确实是'auditlog',没有拼写错误。如果是子路由场景,可能需要调整路径格式(比如'user/auditlog'),但当前错误的核心还是模块找不到,优先处理前面的步骤。
内容的提问来源于stack exchange,提问作者Bhrungarajni
相关产品推荐
相关产品推荐

