pun*_*bit 6 javascript reactjs
我有一个组件库包*,它使用 styleguidist 和其他自定义功能,使我能够在不同的应用程序中重复使用某些演示/哑组件。
它们经过构建、测试、导入并在成功使用 React v16 的不同项目中使用。
最近尝试将该包包含在 React v15 项目中,但失败了;没有错误,但 DOM 出现“ <undefined></undefined>”:
import { Foobar } from '@privatePackage/packageFoobar'
<Foobar />
Run Code Online (Sandbox Code Playgroud)
呈现:
<undefined></undefined>
Run Code Online (Sandbox Code Playgroud)
理想情况下,我会将遗留项目更新为最新版本的 React,并在原始源中设置peerDependency,以防止将 React 捆绑在包*中进行分发。另外,在 devDependency 中包含“React”以进行开发。
"peerDependencies": {
"react": ">=16.x",
...
},
"devDependencies": {
"react": ">=16.x",
...
}
Run Code Online (Sandbox Code Playgroud)
那么,与旧版本 React 捆绑的组件与未来版本不兼容的想法是否正确?或者将 React 捆绑在分发文件中是这行不通的原因吗?我知道捆绑“React”并不是一个好的做法,而是应该将其作为peerDependency,但对于遗留项目来说,现在最好不要更新React,因为与项目中大多数包相关的API更改等。
如上所述,即使单独捆绑,尝试相互使用不同的 React 版本也不是一个好习惯,在上面的情况下,组件是从使用最新 React 版本的项目导入的,然后导入到旧版本中。它失败了,而且应该失败。
为了解决这个问题,遗留项目包需要单独更新并解决任何API更改等问题。之后,较低级别的包(组件库*)应该在peerDependency和开发中都具有react依赖项。
| 归档时间: |
|
| 查看次数: |
621 次 |
| 最近记录: |