当前位置: 首页 > 面试题库 >

签入node_modules与收缩包装

唐阳泽
2023-03-14
问题内容

签入node_module是社区标准,但现在我们也可以选择使用wrapwrap。后者对我来说更有意义,但是总会有人进行“强制发布”并引入错误。还有其他缺点吗?


问题答案:

我最喜欢的关于这个主题的文章/哲学可以追溯到2011年(在node.js领域很长一段时间):

https://web.archive.org/web/20150116024411/http://www.futurealoof.com/posts/nodemodules-
in-
git.html

直接引用:

如果您拥有要部署的应用程序,则将所有依赖项检入到node_modules中。如果使用npm进行部署,请仅为那些模块定义bundleDependencies。如果您有需要编译的依赖项,则仍应签入代码并在部署时运行$
npm rebuild。

我告诉过的每个人也告诉我我是个白痴,然后几周后告诉我我是对的,检查node_modules到git中对部署和开发是一种祝福。从客观上讲,它是更好的方法,但这是我似乎遇到的一些问题/投诉。

我认为这仍然是最佳建议。

强制发布方案很少见,npm shrinkwrap可能对大多数人有用。但是,如果要部署到生产环境,则没有什么比检查整个node_modules目录更省心的了。

或者,如果您确实不想检查node_modules目录,但希望更好地保证没有被强制推送,请遵循以下建议npm help shrinkwrap

如果要避免拜占庭作者用破坏应用程序的代码替换正在使用的程序包的任何风险,则可以修改收缩包装文件以使用git
URL引用而不是版本号,以便npm始终从git中获取所有程序包。

当然,有人可以运行一个奇怪的git rebase东西或修改git commit哈希……但是现在我们变得疯狂了。



 类似资料:
  • 我正在使用Shrinkwrap解析DAO中的.xml 我在测试中得到2个错误: java.lang.NoClassDefoundError 而且 java.lang.RuntimeException:无法调用部署方法 我有一些DAO测试在工作,但是当a继续编写剩余的测试时,这个错误开始了,并且影响了我正在编写的测试和之前正常的测试。 我更改了一些内容:我使用了,而不是添加了一百万个。 我最好的猜测

  • 问题内容: [1]指出: “从堆中删除数据时,页面上的数据不会被压缩(回收)。并且如果堆页面的所有行都被删除,则通常无法回收整个页面” “ ALTER INDEX重建和重组选项不能用于对堆中的空间进行碎片整理(但它们可以用于对堆中的非聚集索引 进行碎片整理。)如果要在SQL Server 2005中对堆进行碎片整理,则需要三个选项: 1)在堆上创建一个聚集索引,然后删除该聚集索引; 2)使用SEL

  • 假设网格布局如下: null null 我想‘收缩包装’网格项,这样 1)网格的最大宽度将仅与内容一样宽,但 2)如果没有足够的空间容纳内容-项目将相应地包装。 在上面的演示中,第一个约束失败了--网格列伸展以适应它们各自的内容,并且所有额外的视口宽度在列之间平分(添加)。 Codepen演示-(调整大小看看我在说什么) 我尝试了几种方法来解决这一问题,但它们都将网格项“收缩包装”成与实际网格本身

  • 我有一个用例来将电子签名与一些机密客户的现有应用程序集成。 在探索docuign时,我发现有两种方法可以获得电子签名: 远程-在电子邮件中发送签名链接 我很清楚这条遥远的路。但是,嵌入式方式不明确,我的问题是关于嵌入式的: 我有一个示例用例:假设,Tom是我的用户,他想从另一个用户Pedro那里获得签名的文档。所以汤姆会: 点击API创建一个信封,将所有文档封装在其中 现在,Tom如何将此URL发

  • 在windows下我们接触最多的压缩文件就是.rar格式的了。但在linux下这样的格式是不能识别的,它有自己所特有的压缩工具。但有一种文件在windows和linux下都能使用那就是.zip格式的文件了。压缩的好处不用笔者介绍相信你也晓得吧,它不仅能节省磁盘空间而且在传输的时候还能节省网络带宽呢。 在linux下最常见的压缩文件通常都是以.tar.gz 为结尾的,除此之外还有.tar, .gz,

  • 问题内容: 最近,我尝试使用Yarn安装Node软件包。它运作良好,并且比NPM快得多。纱线自动生成。我们已经有NPM收缩包装()。 它们之间有什么区别吗?是否有过NPM-shrinkwrap.json什么优势? 问题答案: 该文件与其他程序包管理器的锁定文件非常相似,尤其是Rust的Cargo程序包管理器具有。这些锁定文件的想法是代表一组始终有效的软件包。 将依赖关系范围存储在文件中,这意味着当