node.js - 每次更改分支时如何避免 npm install ?
问题描述
我在 git lab 中有一个 git 存储库设置。现在每次我更改分支时我都应该这样做:
npm install && composer install && cp .env.example .env && artisan generate key
因为我输了.env
,node_modules
和 composer 模块。并且重新安装它们需要很长时间。因为如果我没有安装 node_modules 和其他东西,我就无法运行它并测试分支
我想知道我是否做错了什么,或者是否有办法让它发生。
我做了很多搜索,但没有运气。
提前致谢
解决方案
您确定您正在谈论的文件/目录被 git 忽略(它们在您的.gitignore
文件中)吗?如果不是这种情况,这里是您问题的答案:
由于它们与您正在使用的环境绑定,因此 git 不应该以任何方式触及它们。这就是为什么您在另一个分店结账时不应该丢失它们的原因。
只有composer.lock
, thepackage-lock.json
和 the.env.example
应该被版本化。然后,当您从 GitLab 克隆存储库时,您执行 a npm install
, a composer install
,复制.env.example
etc... 以设置您的依赖项,但依赖项目录(例如node_modules
)不应来自您的存储库。
然后过了一会儿,让我们假设您想要更新您的 Composer 依赖项。你会做一个composer update
. 您的composer.lock
文件将被更新并提交到您的存储库。
然后,如果另一台计算机上的某人拉取您的更改,他只会拉取新更新的composer.lock
文件。然后,他将制作一个composer install
,它将安装(或更新,如果他之前已经安装过它们)从composer.lock
到他的vendor
文件夹中的依赖项。
希望对您有所帮助,请随时在评论中询问更多详细信息:)
推荐阅读
- flutter - Dart 跨页面持久化数据
- layout - 如何配置 Cytoscape 无头布局?
- objective-c - Objecitve C/Swift Pinch 放大区域
- c# - 当我有两个消费者线程运行时,为什么只有一个 RabbitMQ 消费者接收所有消息?
- angular - 如何在 Angular 中使用循环多次显示链接
- c - 二结构一功能
- visual-studio - 有没有更好的方法来下载 .NET 离线环境所需的 nuget 包?
- typescript - 打字稿:Typeguard Symbol.iterator
- java - 如何使用 Jython 从 InputStream 或字节中编译带有编码声明的 Python 文件?
- html - Swiper V6.4.1 如何使用 SWIPER V.6.4.1 在单个页面上创建多个 swiper