对等与依赖npm软件包

时间:2019-09-02 09:56:03

标签: reactjs npm

我正在创建一个本机的npm模块。

npm模块使用React和React-Native软件包,即像这样

import React, { Component}  from 'react'
import { View } from 'react-native' 

class something extends Component {

render () {
return (
<View> 
{/* Code */}
</View> 
) 

现在,在这里我应该添加React和React-native作为依赖项或peerDependencies,为什么?

更新:我当前用于库的package.json(npm模块)

"dependencies": {
    "prop-types": "^15.7.2",
    "react": "^16.9.0",
    "react-native": "^0.60.5",
    "react-native-device-info": "^2.3.2"
  }

对于该应用,让它类似于

 "dependencies": {
      "prop-types": "^15.7.2",
      "react": "^16.9.0",
      "react-native": "^0.60.5"
    }

看起来正确吗?

1 个答案:

答案 0 :(得分:1)

如果您的模块类似于ui库,并且要安装到另一个React应用中,则它应该将react和react-native列为 devDependencies和peerDependencies 。主机应用程序中不应有2个版本的react(和react-native)版本,因此要实现这一点,请使用这2个依赖项,它们不会在主机应用程序中安装任何东西。

devDependencies :描述开发时依赖的软件包;你们都需要反应和反应本机,所以把它们放在这里;使用所需的任何版本。

peerDependencies :描述您需要/建议您的主机应用使用的软件包,这些版本应至少与您的使用相匹配,因此可以是最低版本或不受限制;

例如,检查此package.json,在开发时,此包将“ react”:“ ^ 16.8.5”用作“ devDependencies”;并且在安装时,它实际上不使用任何特定于React版本的特定api,因此它使用“ react”:“ *”作为“ peerDependencies”。


参考文献:

https://nodejs.org/es/blog/npm/peer-dependencies/

  

我们需要的是一种表达这些“依赖关系”的方法   插件及其主机包。可以这样说:“我只有在   插入了我的主机软件包的1.2.x版本,因此,如果您安装了我,   确保它与兼容主机并排。”我们称之为   关系对等依赖性。

https://docs.npmjs.com/specifying-dependencies-and-devdependencies-in-a-package-json-file

  

“ devDependencies”:仅本地开发所需的软件包   和测试。

相关问题