所以我一直在和一些同事讨论这个问题,我想让其他人对此进行权衡。我很想知道其他开发人员在做什么。
我喜欢做的是忽略repo中的整个build / assets文件夹。此文件夹包含我编译的CSS,Javascript和压缩图像。我认为只应检查源文件。我发现每次我对样式表或JS文件进行更改时都会感到烦恼,我必须检查源文件和新编译的版本。当您有多个人在处理项目时,这也会引入合并冲突和其他问题。我喜欢让repo保持良好和轻松,然后让开发人员在本地构建项目以进行设置。或者在部署时,让服务器构建项目。
这有点问题,因为我的同事使用Git作为部署过程。因此,当您想要部署时,将代码检入git,将其推送到远程仓库,然后通过SSH连接到服务器并执行git fetch&& git pull。这意味着所有网站文件都必须存在于回购中。所以我现在必须检查我的资产文件夹。
你们怎么处理这个?我将bedrock-ansible
用于Wordpress网站,并且可以选择在部署之前运行某些命令,因此我将其配置为运行npm install && gulp build
并构建项目,但问题是它太慢了。 bedrock-ansible的工作方式是为每个部署创建一个新的发布目录,它只是将最新的一个目录链接到current
目录。因此,每次部署时,它都运行npm install
实际上,我只需要在一个共享目录中使用这些依赖项。可能有一种方法可以用npm install --prefix install/dir
来做到这一点,但我还没有测试过它。我认为这可能会引入更多问题。
现在,我必须将所有已编译的资产签入git,以使其正常工作。但是在我的gulp watch
任务中,我没有发生任何缩小,但是当我想要部署时,我想首先运行gulp build
,这将缩小和丑化所有内容 - 所以从技术上来说,我会永远我想部署网站时必须提交。一团糟。您认为处理此问题的好方法是什么?
答案 0 :(得分:2)
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction=manager.beginTransaction();
Fragment f1 = manager.findFragmentById(R.id.pager);
transaction.remove(f1);
transaction.commit();
}
});
可以将所有已编译的文件放在gulp build
目录中,dist/
可以将此目录推送到远程。您可以使用git-directory-deploy:
gulp publish
或者,您可以手动为已编译资产设置单独的分支,并在部署网站时将其推送到远程服务器(this SO answer可能有帮助)。
这样,您可以在开发分支上维护干净的历史记录,而不必担心合并冲突,同时仍将Git用作部署过程。
答案 1 :(得分:0)
您可以创建创建在本地运行时执行以下操作的任务,而不是直接sshing到服务器: