在写vue项目的时候 如何做到上传代码即自动打包发布到服务器?
就是比如 有一个VUE项目 现在已经完成编写
想通过一个命令或者是上传私有git时触发自动打包发布到服务器 而不需要去服务器上登录然后删除文件替换这种麻烦的操作
此时我需要看什么东西或者工具才能实现这个功能?
在写vue项目的时候 如何做到上传代码即自动打包发布到服务器?
就是比如 有一个VUE项目 现在已经完成编写
想通过一个命令或者是上传私有git时触发自动打包发布到服务器 而不需要去服务器上登录然后删除文件替换这种麻烦的操作
此时我需要看什么东西或者工具才能实现这个功能?
要实现Vue项目通过命令或Git触发自动打包并上传到服务器,你可以采取以下方法:
安装依赖:
在项目根目录下,使用npm安装scp2,这是一个基于ssh2的scp客户端,用于实现文件的安全拷贝。
npm install scp2 --save-dev
编写上传脚本:
在与package.json
平级的位置创建一个脚本文件,例如upload.js
。该脚本将使用scp2将打包后的文件上传到服务器。
'use strict';
const scp2 = require('scp2');
const ora = require('ora');
const chalk = require('chalk');
const spinner = ora(chalk.green('正在上传到服务器...')).start();
scp2.scp('./dist/', {
host: 'XXX.XX.XX.XXX', // 服务器的IP地址
port: '22', // 服务器端口,一般为22
username: 'XXX', // 服务器用户名
password: '*****', // 服务器密码
path: '/path/to/remote/' // 项目部署的服务器目标位置
}, err => {
spinner.stop();
if (!err) {
console.log(chalk.green('项目上传完成'));
} else {
console.error('err', err);
}
});
注意:确保在上传时不包含此脚本文件的敏感信息,如服务器密码等。可以考虑使用环境变量或.env文件来管理这些敏感信息。
修改package.json
:
在package.json
的scripts
部分添加两个命令:build
和upload
。build
命令用于打包Vue项目,upload
命令用于执行上传脚本。然后,可以添加一个复合命令来同时执行打包和上传。
"scripts": {
"build": "vue-cli-service build",
"upload": "node upload.js",
"deploy": "npm run build && npm run upload"
}
现在,运行npm run deploy
命令将自动打包项目并上传到服务器。
要实现通过Git触发自动打包并上传到服务器,你可以使用Git的钩子(hook)功能。例如,可以在Git仓库中设置一个post-commit钩子,该钩子在每次提交后自动执行。
创建Git钩子:
在你的Git仓库的.git/hooks
目录下创建一个名为post-commit
的文件(如果不存在该目录或文件,请创建它们)。
编写钩子脚本:
在post-commit
文件中编写脚本,以在每次提交后执行打包和上传命令。例如:
#!/bin/bash
cd /path/to/your/vue/project
npm run deploy
确保该脚本具有执行权限。你可以使用chmod +x .git/hooks/post-commit
命令来设置执行权限。
测试钩子:
在Git仓库中做出一些更改并提交,以测试钩子是否按预期工作。
注意:使用Git钩子触发自动部署时,请确保你的服务器环境已经配置好Node.js和npm,并且你的Vue项目已经正确设置。此外,由于Git钩子是在本地执行的,因此你需要确保你的本地机器有足够的权限来访问服务器并上传文件。如果需要在远程服务器上执行这些操作,你可能需要使用SSH密钥或其他安全机制来配置无密码登录。
以上就是通过命令或Git触发Vue项目自动打包并上传到服务器的方法。
6 回答3.1k 阅读✓ 已解决
8 回答4.9k 阅读✓ 已解决
6 回答3.7k 阅读✓ 已解决
6 回答2.5k 阅读
5 回答6.5k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决