首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Packe-lock.json或Shap.cljs.build-Report来跟踪依赖项中的变化有什么区别?

使用Packe-lock.json或Shap.cljs.build-Report来跟踪依赖项中的变化有什么区别?
EN

Stack Overflow用户
提问于 2022-09-23 23:11:56
回答 1查看 41关注 0票数 0

我一直在使用Clojure、ClojureScript、lein、影子cljs、reagent、试剂、Emacs和苹果酒来开发Clojure/ClojureScript动态web应用程序项目。

通常,我通过在Emacs中执行命令cider-jack-in-cljs来构建项目,选择shadow-cljs,然后选择shadow作为REPL类型,最后选择app作为构建选项。

目前,该项目面临可再现性危机。很难知道项目上正在更改哪些依赖项。此外,每个开发人员都有自己的本地开发环境。事情变得更糟了,因为这种“混乱”甚至可能发生在部署环境中,因为它取决于执行部署的机器(没有CI/CD,部署是手动的)。

重要的是要理解为什么/如何/何时/哪些依赖项在每个版本之后被更改。

有一个有趣的命令名为shadow-cljs shadow.cljs.build-report (参见文档)。它可以用npx shadow-cljs run shadow.cljs.build-report执行。此命令生成一个报表,将依赖树显示为原始HTML。

一种方法是将此命令的输出保持在版本控制下,并使用git diffs检查差异。

但是,一位同事说package-lock.json已经这么做了(参见文档)。因此,我开始怀疑两者之间的区别。

我至少可以看到一个:shadow.cljs.build-report输出的文件在web浏览器中呈现得很好,因此,对人的可读性来说感觉更好。

还有什么不同吗?他们是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-24 06:39:08

只生成报告报表生成信息。它确实列出了与版本一起使用的所有依赖项,但它没有锁定。因此,它不有助于构建可靠性,它只是作为一个控制。

package-lock.json 您应该保持的版本控制。是由npm install使用的,以确保每次运行时都会安装所有相同的版本。见文档

如果没有锁文件,npm install将以不确定的方式安装软件包。不幸的是,大多数npm包使用版本范围来声明依赖项。因此,如果没有锁文件,您就永远无法确定实际会得到哪个版本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73833731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档