我正在尝试为服务,组件和模型创建一个Angular 2库,我想在3-4个不同的接口/应用程序之间共享,这些接口/应用程序是同一个数据库的前端。
我正在使用非常有用的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
以检查所有内容是否已安装时,即使安装了Apollo Client npm WARN apollo-angular@0.13.0 requires a peer of apollo-client@>=0.8.0 <=0.10.1 || >=1.0.0-rc <2.0.0 but none was installed.
,我也会获得npm WARN apollo-client-rxjs@0.5.2 requires a peer of apollo-client@>=0.7.2 <=0.10.1 || >=1.0.0-beta <2.0.0 but none was installed.
和1.9.0-1
。我为我的应用和运行npm install
的图书馆收到了这些警告。
如果我直接在我的应用程序中使用Apollo Client(而不是通过库),尽管有这些警告,它仍能正常工作。
任何人都可以帮我指出正确的方向来解决这些问题吗?
更新:
根据评论中的要求,我可以确认Apollo客户端存在于我的应用程序的node_modules
文件夹和我的图书馆中。在这两种情况下,版本都是1.9.0-1
。 Apollo Client用于从Angular 2应用程序轻松创建GraphQL查询。
答案 0 :(得分: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"]
}
}