这是我参与「第四届青训营 」笔记创作活动的的第7天
做项目过程中,有很多地方需要注意,这里记录下来。
Git
git丢弃本地修改的所有文件
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
遇到合并时出现冲突先不解决,返回
git reset --merge
解决冲突后再次合并
git add .
git status
git commit -m"说明"
git merge 分支名
git commit 报错 'node' 不是内部或外部命令,也不是可运行的程序 或批处理文件
可能是提交的时候有校验导致的,而验证的插件依赖于nodejs,首先检查是否配置了nodejs相关环境,如果实在找不到原因可以尝试提交取消验证,在最后面加上
--no-verify即可
项目
引入element-plus后样式不生效
main.js中加上
import 'element-plus/dist/index.css'
Vue在v-for循环中动态加载相对路径图片
Vue中加载相对路径资源需要加上require()才被解析
通过axios获取本地json数据
- 安装axios
npm install axios --save - json文件放在public文件夹中(vue3)
- 通过axios.get()方法获取json数据
- 在对应页面import axios
- 通过axios.get()方法获取json数据
- 调用方法
将部分页面截图并下载到本地
用到html2canvas
var downloadContent = document.querySelector('#renderControlPanel');
html2canvas(downloadContent).then(canvas => {
let url = canvas.toDataURL("image/png");
let link = document.createElement("a");
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var mytime = date.toLocaleTimeString(); //获取当前时间
var time = year + "-" + month + "-" + day + ' ' + mytime;
link.download = "页面预览" + time;
link.href = url;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
});
使用html2canvas改善图片清晰度
主要步骤是
- 扩大canvas容器,其实就是增加了分辨率
- 关闭canvas默认的抗锯齿设置
- 将合成图片缩放至原来的大小
handleDownload() {
var downloadContent = document.querySelector('#renderControlPanel');
var width = downloadContent.offsetWidth
var height = downloadContent.offsetHeight
var canvas = document.createElement('canvas')
var scale = 2
canvas.width = width * scale
canvas.height = height * scale
canvas.getContext('2d').scale(scale, scale)
var opts = {
scale: scale,
canvas: canvas,
width: width,
height: height,
// 避免下载不全
backgroundColor: null,
// 【重要】开启跨域配置
useCORS: true
}
html2canvas(downloadContent, opts).then((canvas) => {
var context = canvas.getContext('2d')
// 【重要】关闭抗锯齿
context.mozImageSmoothingEnabled = false
context.webkitImageSmoothingEnabled = false
context.msImageSmoothingEnabled = false
context.imageSmoothingEnabled = false
var img = Canvas2Image.convertToPNG(canvas, canvas.width / 2, canvas.height / 2)
let dataURL = img.getAttribute('src')
// 下载图片
let a = document.createElement('a')
document.body.appendChild(a)
a.href = img.src
// 设置下载标题
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var mytime = date.toLocaleTimeString(); //获取当前时间
var time = year + "-" + month + "-" + day + ' ' + mytime;
a.download = "页面" + time; // 图片名字
a.click()
})
},
canvas2image无法正常使用
调用方法时报错Uncaught (in promise) TypeError: _canvas2image__WEBPACK_IMPORTED_MODULE_2___default(...).convertToPNG is not a function
找到node_modules文件中的canvas2image文件夹,复制js文件放在本地,并在js文件最后加上export default Canvas2Image;,再相应页面引用即可解决
部署
使用Xshell远程连接腾讯云服务器
- 创建密钥
找到密钥部分,点击创建密钥按钮,输入密钥名称(自己命名)
- 创建后会自动下载密钥,保存
- 在服务器页面点击管理密钥对,选择刚刚创建好的密钥进行绑定
- 打开Xshell,新建会话,填写服务器主机,点击用户身份验证,用户名输入root,选择Public Key方法,将刚刚下载的密钥导入,点击确定
- 连接成功
使用nginx将项目部署到服务器
以root身份登录
sudo su root
安装nodejs
- 进入 /usr/local目录
- 下载nodejs压缩包
- 解压压缩包
tar xvf node-v16.0.0-linux-x64.tar.xz
- 修改文件夹名称
mv node-v16.0.0-linux-x64 nodejs
- 配置环境变量
cd /
vim /etc/profile
- 重启
source /etc/profile
- 测试
node -v 出现版本号即安装成功
上传项目文件夹
这里推荐使用Xftp,拖动即可,方便快捷
安装nginx
- 进入 /usr/local目录
- 下载nginx压缩包
- 解压压缩包
tar -zxvf nginx-1.18.0.tar.gz
- 安装
cd nginx-1.18.0
./configure --prefix=/usr/local/nginx/ make
make install
- 检查是否安装成功
cd ..
./nginx/sbin/nginx -t
6. 配置nginx.conf
1. 最开始要改成当前操作的用户名,即root
2. root部分是要部署项目的文件夹
3. location /api可以配置跨域部分
7. 重启
./nginx/sbin/nginx -s reload
即可打开页面