假设以下项目结构:
回购
每个目录都是他们自己的小项目,包括他们自己的依赖项。
我目前正在尝试使用常规模块导入导入项目A和项目B中的按钮组件。话虽这么说,我的导入确实回过头几步../../../common/button.component
为了在公共文件夹中声明一个按钮,我需要一个包含@ angular / core的node_modules文件夹,否则我不能使用import {Component} from '@angular/core'
现在所有设置看起来都很好并且功能正常,但是在使用ng serve
启动我的应用程序时,我遇到以下问题:
错误在../common/node_modules/@angular/core/src/render3/ng_dev_mode.d.ts(9,11):错误TS2451:无法重新声明块范围变量'ngDevMode'。 node_modules/@angular/core/src/render3/ng_dev_mode.d.ts(9,11):错误TS2451:无法重新声明块范围变量'ngDevMode'。
如果我从公共模块中删除@angular/core
并尝试再次运行,我会得到:
错误在../common/components/angular/common.modules.ts(1,30):错误TS2307:找不到模块'@ angular / common'。
哪个有意义,因为node_modules不再是公共项目的一部分。
我想知道如何解决这个问题。 我可以从ProjectA或ProjectB导入@ angular / core,但是这会打破对于公共文件夹没有依赖ProjectA和B的规则(但是可以依赖于公共项目)。