2017-07-26 56 views
0

我正在尝试为服务,组件和模型创建一个Angular 2库,我想在前面到同一数据库的3-4个不同界面/应用程序之间共享。无法解决共享的Angular 2库中的NPM依赖关系

我正在使用非常有用的Angular 2生成器库here

我在图书馆的服务基于Apollo客户端和GraphQL。

但是,当我符号链接库构建导入到我的主项目,Apollo依赖似乎并没有解决。

我从我的应用程序构建中得到以下两个错误:Can't resolve 'apollo-angular/index'Can't resolve 'graphql-tag/index'。尽管事实上这两个库都安装在我的应用程序的node_modules中,但是,它们似乎没有通过Gulp构建转移到我的库的dist目录中,但我甚至不确定它们是为了是。

我也试图建立对等的依赖在我的图书馆的package.json如下:

"peerDependencies": { 
    "@angular/core": "^4.0.0", 
    "rxjs": "^5.1.0", 
    "zone.js": "^0.8.4", 
    "graphql-tag": "^2.4.2", 
    "apollo-angular": "^0.13.0", 
    "apollo-client": "~1.9.0-1" 
} 

此外,当我运行npm install检查安装的一切,我得到npm WARN [email protected] requires a peer of [email protected]>=0.8.0 <=0.10.1 || >=1.0.0-rc <2.0.0 but none was installed.npm WARN [email protected] requires a peer of [email protected]>=0.7.2 <=0.10.1 || >=1.0.0-beta <2.0.0 but none was installed.即使阿波罗的客户1.9.0-1是安装。我收到了我的应用程序和运行npm install的库的警告。

如果我在我的应用程序中直接使用Apollo客户端(而不是通过库),它仍可以正常工作,尽管存在这些警告。

任何人都可以帮助我指出正确的方向来解决这些问题吗?

UPDATE:

正如意见中的要求,我可以证实,阿波罗客户在我的两个应用程序的node_modules文件夹存在和我的图书馆。在这两种情况下版本都是1.9.0-1。 Apollo客户端用于轻松从Angular 2应用程序制作GraphQL查询。

+0

定义路径不知道阿波罗客户做..你或许安装在全球,以及在项目级吧?全局版本超出允许范围(<0.8.0 || 2.0.0+)。也许这是以某种方式在项目版本上看到的。检查你的node_modules文件夹,看看npm安装的项目级别是否有版本,并添加反馈。 – JGFMK

回答

1

可能是因为this问题发生。

尝试在你的TS

"compilerOptions" : { 

    ... 

    "paths": { 
    "@angular/*": ["../node_modules/@angular/*"], 
    "apollo-client": ["../node_modules/apollo-client"], 
    "apollo-client-rxjs": ["../node_modules/apollo-angular/node_modules/apollo-client-rxjs"] 
    } 
}