cob*_*nks 11 angular-library angular6
关于如何在我的库angular6项目中引用外部npm包,我有点困惑.我们有一个内部scss库,我想用它来设置我库中可重用组件的样式.我如何进口呢?
用于lib项目的package.json:
{
"name": "ikr-lib",
"version": "0.0.1",
"peerDependencies": {
"@angular/common": "^6.0.0-rc.0 || ^6.0.0",
"@angular/core": "^6.0.0-rc.0 || ^6.0.0",
"document-register-element": "1.8.1"
},
"dependencies": {
"element.ui": "^1.0.1"
}
}
Run Code Online (Sandbox Code Playgroud)
当我构建库项目时,我得到了这个:
Distributing npm packages with 'dependencies' is not recommended. Please consider adding element.ui to 'peerDependencies' or remove it from 'dependencies'.
BUILD ERROR
Dependency element.ui must be explicitly whitelisted.
Run Code Online (Sandbox Code Playgroud)
似乎将程序包名称添加到ng-package.json文件中的“ whitelistedNonPeerDependencies”集合中将解决此生成问题。我仍然不确定最佳做法是什么。我们是否应该创建依赖于其他npm软件包的角度库,还是最好仅具有peerDependancies?
ng-package.json文件:
{
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
"dest": "../../dist/ikr-lib",
"deleteDestPath": false,
"lib": {
"entryFile": "src/public_api.ts"
},
"whitelistedNonPeerDependencies": [
"element.ui"
]
}
Run Code Online (Sandbox Code Playgroud)
这比官方的回答更像是猜测/漫步,但这是我从到目前为止的发现和思考中收集的信息。
//验证非对等依赖项,因为它们很容易导致应用程序的node_modules文件夹中的重复安装或版本冲突
因此,我认为他们担心的情况是,库本身具有一个版本的依赖关系,而使用该库的应用程序可能会使用另一个版本。
^
在版本中使用,是安装依赖项的默认配置。^
在版本号中使用会删除重复性的副本,这些副本因次要版本或修补程序版本而异。因此,我认为主要关注点将是主要版本。
从应用程序的角度来看的一些示例node_modules
:
^2.8.3
,库:^2.8.0
=>重复数据删除(2.8.3
)^2.9.0
,库:^2.3.4
=>重复数据删除(2.9.0
)^3.0.1
,库:^2.3.4
=>复制(3.0.1
并2.3.4
存在)这可能会使应用程序的大小膨胀,或者在工具尝试作为依赖项加载哪个版本方面引起冲突。
这个答案也谈到了为什么要使用它peerDependencies
。
归档时间: |
|
查看次数: |
2785 次 |
最近记录: |