zhihu / griffith

A React-based web video player

Home Page:https://codesandbox.io/embed/p03wm0o80

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

提个issue,以纪念被浪费一下午的时光

349989153 opened this issue · comments

griffth 1.5.3,重新npm install之后一直报错,报错信息指向esm/index.js的592行:

const [width, height] = reduce(videoWidth, videoHeight);

Uncaught TypeError:Object is not a function or its return value is not iterable

折腾了一下午,才发现此项目的griffith-utils是1.23.0,而另一个老项目griffith-utils是1.10.0

重新安装griffith-utils@1.10.0,报错终于得以解决

所以griffth 1.5.3里面的依赖:
"griffith-utils": "^1.4.4",

然后又在1.23.0里删掉reduce方法

这种版本管理是可以做出来的吗?

你最后怎么解决,在最外层项目里面安装griffith-utils@1.10.0么

我解决了,还好看到你的提问才发现,我把griffth里面的依赖包node_modules,重新装个"griffith-utils": "^1.4.4"就可以了

commented

抱歉,这是可能是项目内部共享代码管理问题。
如果是使用方依赖包有重复,建议配置包管理工具进行自动化去重,例如 yarn v1 使用 yarn-deduplicate,yarn v2+ 直接执行 yarn dedupe

commented

你最后怎么解决,在最外层项目里面安装griffith-utils@1.10.0么

我不是最外层最里层项目,我是有两个项目,一个能跑起来另一个不能,比对了才发现是griffith-utils版本不一样,而griffith-utils@1.23.0版本把reduce方法删了,因此导致一个项目跑不起来。解决就是删掉griffith-utils,然后安装griffith-utils@1.10.0

这个事情本身的离谱之处在于,我package.json里griffth的版本没变,删掉node_modules之后重新npm install,就会导致项目报错。

因为他们的griffth里面写的依赖是"griffith-utils": "^1.4.4", 而这个写法是会安装1.x.x版本的,而griffith-utils@1.x.x的api是不一样的!

commented

抱歉,这是可能是项目内部共享代码管理问题。 如果是使用方依赖包有重复,建议配置包管理工具进行自动化去重,例如 yarn v1 使用 yarn-deduplicate,yarn v2+ 直接执行 yarn dedupe

你们应该把你们griffth里面的package.json的依赖写好再关掉这个issue。