【问题标题】:Using Git for Angular App将 Git 用于 Angular 应用程序
【发布时间】:2015-02-06 07:56:49
【问题描述】:

我正在使用Yeoman 生成一个角度应用程序。一旦我对我的应用程序感到满意,我就会运行grunt,它会在我的项目根目录下名为/dist 的文件夹中创建我的应用程序的生产就绪版本。

然后,我将这个 /dist 目录初始化为带有 git init 的 Git 存储库,并将文件推送到 Bitbucket,它们现在就在其中。

我要问的是,每次我想要提交时,我是否必须使用 grunt 编译我的生产就绪应用程序?看来我必须。我认为这种设置可能不是最有效的方法?

我是否遗漏了什么,有没有更简单、更高效的方法来处理这个问题?

【问题讨论】:

  • 基本上,您将错误的内容检查到 git 中。您在根目录中的主要应用程序是您真正想要与其他人共享和协作的应用程序。 /dist 目录正是您所说的,推动性能等最重要的生产。您可以制作 /dist 一个 git repo,但它的唯一目的基本上应该是推送到您的生产服务器。开发期间的所有其他提交都应在您的应用程序根存储库中完成。此外,如果您只使用 /dist,您将无法与人协作,因为那是您应用的“打包”版本
  • @snowman4415 您需要创建两个存储库,还是在一个存储库(根文件夹和 /dist)中创建一个存储库?你能解释一下处理这种事情的最佳方法吗?

标签: angularjs git yeoman


【解决方案1】:

那个工作流程很奇怪。

只有源代码应该在您的 git 存储库中。不是编译/缩小的文件。源代码才是最重要的。

当你与其他人合作时,他们应该自己运行繁重的任务。

Dist 包应该在部署到生产环境之前创建。或者由持续集成服务器定期进行。

【讨论】:

  • 是的,感觉很奇怪。假设我将整个根 repo 推送到 Bitbucket,有没有办法只将 /dist 目录下拉到服务器上?或者是否值得将整个 repo 放在我的 web 服务器上,并将站点指向我的 /dist 文件夹?抱歉这个愚蠢的问题。
  • 我想你正在尝试做某种“git deploy”。根据:stackoverflow.com/questions/10124223/… 可以签出单个目录。但是您仍然不应该将编译后的 dist 目录提交到您的存储库中。这很奇怪,应用程序会变得脆弱,因为当您修复一些错误并且不手动运行构建时,您的 dist 不会更新。所以......我建议忘记那件事。而是考虑部署脚本,它将提供原子部署 - 1.pulls 当前版本,2.run build 3.copy dist 到服务器
  • 你知道我在哪里可以得到一些关于这样的部署脚本的信息吗?我假设像 Yeoman 这样的生成器可以很容易地通过 Git 部署完成的应用程序。
  • 我自己编写这些脚本。我不使用 git 进行部署。对我来说,它只是 scipt “deploy.sh”,我基本上会拉到 tmp,gulp 构建,然后通过 ssh rsync /dist 到生产服务器。
猜你喜欢
  • 2012-01-14
  • 1970-01-01
  • 2018-09-04
  • 2018-12-10
  • 2017-12-16
  • 2017-02-12
  • 1970-01-01
  • 2020-06-24
  • 2017-09-22
相关资源
最近更新 更多