javascript - 将文件夹作为另一个项目的依赖项后,如何删除 angular2 中的路由?

标签 javascript angular npm angular2-routing node-modules

我有一个测试 Angular 项目(我们称之为project1),我正在其中编写组件。我必须在这个项目中使用路由,以便从一个组件导航到另一个组件(组织和美观的目的)。

我有另一个 Angular 项目(我们称之为project2),它的node_模块中有project2中的组件project-project1(通过package.json引用它来提供)。

问题

当我必须从 project1project2 获取组件时(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,从 node_modules 引用它。

Beware of this issue if doing lazy-loading from node_modules.

如果您需要更多帮助,请添加一些代码。

关于javascript - 将文件夹作为另一个项目的依赖项后,如何删除 angular2 中的路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46624130/

相关文章:

Angular 2+ - 动态设置基本 href

javascript - 点击 li 时,jQuery 的 .blur() 不会被触发

javascript - sap.m.Input 具有 Float 类型

javascript - Angular 购物车 - 本地存储服务和订阅更改

node.js - 我如何依赖 meteor 应用程序中的版本过期的 npm 包?

javascript - 以编程方式在 GitHub 上查找库的 'main' javascript 文件

npm - yarn 中最接近 `npm ci` 的是什么

javascript - 使用 javascript 返回上一页

javascript - 缩小 CSS/JS 文件并使用命令行创建一个文件

angular - ng 更新@angular/core@10 @angular/cli@10 不工作