项目记录 | 青训营笔记

106 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的的第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()才被解析

1660533454(1).png

通过axios获取本地json数据

  1. 安装axios npm install axios --save
  2. json文件放在public文件夹中(vue3)
  3. 通过axios.get()方法获取json数据
    • 在对应页面import axios
    • 通过axios.get()方法获取json数据
    • 调用方法

image.png image.png image.png

将部分页面截图并下载到本地

用到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改善图片清晰度

主要步骤是

  1. 扩大canvas容器,其实就是增加了分辨率
  2. 关闭canvas默认的抗锯齿设置
  3. 将合成图片缩放至原来的大小
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

image.png

找到node_modules文件中的canvas2image文件夹,复制js文件放在本地,并在js文件最后加上export default Canvas2Image;,再相应页面引用即可解决

部署

使用Xshell远程连接腾讯云服务器

  • 创建密钥

找到密钥部分,点击创建密钥按钮,输入密钥名称(自己命名)

image.png

image.png

image.png

  • 创建后会自动下载密钥,保存
  • 在服务器页面点击管理密钥对,选择刚刚创建好的密钥进行绑定

image.png

  • 打开Xshell,新建会话,填写服务器主机,点击用户身份验证,用户名输入root,选择Public Key方法,将刚刚下载的密钥导入,点击确定

image.png

1661071345(1).png

1661071371(1).png image.png

  • 连接成功

image.png

使用nginx将项目部署到服务器

以root身份登录

sudo su root

安装nodejs

  1. 进入 /usr/local目录
  2. 下载nodejs压缩包

wget nodejs.org/dist/v16.0.…

  1. 解压压缩包

tar xvf node-v16.0.0-linux-x64.tar.xz

  1. 修改文件夹名称

mv node-v16.0.0-linux-x64 nodejs

  1. 配置环境变量

cd /

vim /etc/profile

image.png

  1. 重启

source /etc/profile

  1. 测试

node -v 出现版本号即安装成功

上传项目文件夹

这里推荐使用Xftp,拖动即可,方便快捷

安装nginx

  1. 进入 /usr/local目录
  2. 下载nginx压缩包

wget nginx.org/download/ng…

  1. 解压压缩包

tar -zxvf nginx-1.18.0.tar.gz

  1. 安装

cd nginx-1.18.0

./configure --prefix=/usr/local/nginx/ make

make install

  1. 检查是否安装成功

cd ..

./nginx/sbin/nginx -t

1661072407(1).png 6. 配置nginx.conf 1. 最开始要改成当前操作的用户名,即root 2. root部分是要部署项目的文件夹 3. location /api可以配置跨域部分 1661312201(1).png

image.png 7. 重启

./nginx/sbin/nginx -s reload

即可打开页面