我有一个测试 Angular 项目(我们称之为project1),我正在其中编写组件。我必须在这个项目中使用路由,以便从一个组件导航到另一个组件(组织和美观的目的)。
我有另一个 Angular 项目(我们称之为project2),它的node_模块中有project2中的组件project-project1(通过package.json引用它来提供)。
问题
当我必须从 project1 到 project2 获取组件时(project2 中的简单 Angular forRoot 路由),出现了 forRoot 冲突问题,该问题现在出现在我的 >项目1和项目2。
一旦我从project2的node_modules中删除project1的路由,问题就消失了,但这很耗时。
除了手动删除依赖项(project1)中的路由或注释代码以使project2正常工作之外,还有其他方法可以解决此问题吗?
最佳答案
解决方案1
为 project1 内的 forRoot() 方法添加条件语句。 因此,每次您将其构建为独立应用程序时,它都会执行forRoot()操作,而当构建为npm依赖项时,它会执行forChild操作()。
// this is how you're getting the environment
import { environment } from './environment';
解决方案2
在 project1 中添加延迟加载,这样 cli 不会将所有模块捆绑为一个,而是单独捆绑。之后导入或延迟加载 project1 模块(不是 root,它仍然具有 forRoot())在 project2中em>,从 node_modules 引用它。
Beware of this issue if doing lazy-loading from node_modules.
如果您需要更多帮助,请添加一些代码。
关于javascript - 将文件夹作为另一个项目的依赖项后,如何删除 angular2 中的路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46624130/