We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
最初的 Vue 脚手架 Vue-cli 和 React 脚手架 ceate-react-app 在编译工程时仅仅将工程编译到本地的一个dist文件夹中,对于我想在我的githubpage上面配置我的网站和音乐播放器造成了困难:我必须build之后再切换分支,将我的dist文件夹内容放进这个分支中,然后重新push才可以实现其部署。
Vue-cli
ceate-react-app
在公司中发现公司工程是使用 makefile 一键部署的,激发了我也将自己的小项目一键部署的欲望。 因为我的项目需要经常处在 windows 环境开发所以不打算用 makefile 文件处理,直接上 nodejs 来处理这个问题即可。
决定了大体技术选型,我们需要明白我们要处理一个什么样的问题:
根据我的需求,我需要将我编译的工程一键部署到 githubpages 上。
事实上这个部署的思路是在我之前的搬瓦工服务器上面构思并实践的,它分为两个部分,分别对应着我上面的两个需求:
明确了我们的需求,开始技术细节的思考。还是按照两边分开来思考:因为两个需求比较独立。
需求一,需要将编译后文件一键push到远程分支。 脑海中隐约觉得自己似乎有遇到过这样的情景:
没错,就是这个hexo博客的部署。我所期望的效果是和执行 hexo d 这个命令一样的效果,所以我决定根据我的经验先去研究一下hexo博客是怎样部署的。 通过阅读 hexo-deployer-git 的源代码,理解了它部署的过程:
hexo d
hexo-deployer-git
remote
force push
明白了它的思路,搜索npm没有相关的可以支持配置普适工程部署的包,于是决定自己写一个。
那么思考一下我所需要完成工程的细节:我想要做一个命令行工具,这个工具用于操作创建指定的临时文件夹并设定git参数,然后进行force push。 基于这些细节上网搜索,我选定了shelljs与commender作为我的实践工具。
shelljs
commender
之后就有了这个简单的包: git-deployer
当然,这个包并不完美,如有人在issues里面所提的:
目前的使用方式是 git-deploy -r [email protected]:username/project.git -d ./dist 每次都要输入项目地址。 可以参考hexo的deploy增加配置文件, (本地项目配置)?本地配置 : 输入配置
可能会参考下一个版本迭代时加入这个功能。
进入下一个问题,我希望每次在我的master分支被push时,我的服务器中都能够进行一个pull操作来执行自动部署。 经过查找资料,我发现了解决这个问题的关键: githooks githooks是指在git中进行关键操作时触发的指定脚本,在github中就提供在push的时候,对指定网址post一个指定请求的githooks。
githooks
那么关键的问题也解决了,只需要在自己的服务器上建立一个服务,专门接受这个post请求,如果这个请求是需要pull的某个工程的push请求,即在对应工程执行pull即可。
google搜索一番,发现已经有相关实现: Node.js:使用hook+shell+git进行自动化构建
思考一番发现这个老哥似乎和自己思路一模一样,本着不重复造轮子的原则,直接将老哥大部分代码拷贝,进行细节调整后放到自己服务器上,用nginx代理一个特殊的端口到这个服务上,稍作微调即正常运行。
现在我所有的线上个人项目都使用 git-deployer + npm script进行一键部署,爽歪歪。
git-deployer + npm script
The text was updated successfully, but these errors were encountered:
No branches or pull requests
最初的 Vue 脚手架
Vue-cli
和 React 脚手架ceate-react-app
在编译工程时仅仅将工程编译到本地的一个dist文件夹中,对于我想在我的githubpage上面配置我的网站和音乐播放器造成了困难:我必须build之后再切换分支,将我的dist文件夹内容放进这个分支中,然后重新push才可以实现其部署。在公司中发现公司工程是使用 makefile 一键部署的,激发了我也将自己的小项目一键部署的欲望。
因为我的项目需要经常处在 windows 环境开发所以不打算用 makefile 文件处理,直接上 nodejs 来处理这个问题即可。
决定了大体技术选型,我们需要明白我们要处理一个什么样的问题:
根据我的需求,我需要将我编译的工程一键部署到 githubpages 上。
事实上这个部署的思路是在我之前的搬瓦工服务器上面构思并实践的,它分为两个部分,分别对应着我上面的两个需求:
明确了我们的需求,开始技术细节的思考。还是按照两边分开来思考:因为两个需求比较独立。
需求一,需要将编译后文件一键push到远程分支。
脑海中隐约觉得自己似乎有遇到过这样的情景:
没错,就是这个hexo博客的部署。我所期望的效果是和执行
hexo d
这个命令一样的效果,所以我决定根据我的经验先去研究一下hexo博客是怎样部署的。通过阅读
hexo-deployer-git
的源代码,理解了它部署的过程:remote
和 分支分别设定为指定的量。force push
。明白了它的思路,搜索npm没有相关的可以支持配置普适工程部署的包,于是决定自己写一个。
那么思考一下我所需要完成工程的细节:我想要做一个命令行工具,这个工具用于操作创建指定的临时文件夹并设定git参数,然后进行
force push
。基于这些细节上网搜索,我选定了
shelljs
与commender
作为我的实践工具。之后就有了这个简单的包:
git-deployer
当然,这个包并不完美,如有人在issues里面所提的:
可能会参考下一个版本迭代时加入这个功能。
进入下一个问题,我希望每次在我的master分支被push时,我的服务器中都能够进行一个pull操作来执行自动部署。
经过查找资料,我发现了解决这个问题的关键:
githooks
githooks
是指在git中进行关键操作时触发的指定脚本,在github中就提供在push的时候,对指定网址post一个指定请求的githooks
。那么关键的问题也解决了,只需要在自己的服务器上建立一个服务,专门接受这个post请求,如果这个请求是需要pull的某个工程的push请求,即在对应工程执行pull即可。
google搜索一番,发现已经有相关实现:
Node.js:使用hook+shell+git进行自动化构建
思考一番发现这个老哥似乎和自己思路一模一样,本着不重复造轮子的原则,直接将老哥大部分代码拷贝,进行细节调整后放到自己服务器上,用nginx代理一个特殊的端口到这个服务上,稍作微调即正常运行。
现在我所有的线上个人项目都使用
git-deployer + npm script
进行一键部署,爽歪歪。参考资料
The text was updated successfully, but these errors were encountered: