[英]How can I get my build toolchain to resolve `src` references in an Angular2 inline template?
[英]How can I fix where template references are in Angular 9?
我最近将 Angular 从 8 升级到 9,一旦我这样做,我就开始收到编译错误,我无法让应用程序再次运行。 我的模板使用的模块似乎指向错误的位置(端点加倍)。
这是它输出的示例。
ERROR in ./src/app/components/prod/settings-dashboard/font-page/font-page.component.ts
Module not found: Error: Can't resolve
'../../../../../../node_modules/@angular/common/common' in
'/Users/person/Projects/appilicious/src/app/components/prod/settings-dashboard/font-page'
正如您所注意到的,它有两次公共引用,看到我并不真正了解模板模块引用的工作原理,我对此感到困惑。 我没有在组件中使用这些,所以我认为它是基于模板的。
它主要用于普通和表单。 我猜有一个我没有更改的设置文件,但我没有找到它的位置。
我的 package.json 在 ~9.0.6 使用 angular
我有一个带有 angular 9 的新项目,并且该项目完美无缺......
ng update
命令一定搞砸了你的一些导入。
检查所有import { ... } from '/path/to/module';
并确保path/to/module
是正确的。
从您的错误消息来看, @angular/common
模块引用似乎已被@angular/common/common
替换,这是不正确的,并导致编译器找不到指定的模块。
因此,这是一个非常肤浅的错误,您应该能够快速修复。
检查您的组件和模块的所有路径是否正确。
对于您的公共模块,请尝试删除您的node_modules
和package-lock.json
。
然后运行npm cache clean -f
和npm i
(这是npm install
的别名)。
我错误地创建了一个index.ts
类型的文件来保存我的所有模块。 不完全确定这是否是不好的做法 - 尽管这可能是不必要的。 所以基本上:
modules.ts
export {CommonModule} from '@angular/common'
并有一个 SharedModule 调用它
shared.module.ts
import {CommonModule} from '../modules'
@NgModule({
imports: [CommonModule],
exports: [CommonModule]
})
export class SharedModule {}
一旦我只使用了它的直接引用,它就起作用了。 不知道为什么会这样做,但这会引起一些混乱。 奇怪的是,这只适用于FormsModule
和CommonModule
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.