docs: update readme

This commit is contained in:
ShawnPhang 2023-09-04 11:11:22 +08:00
parent 7f294b58a3
commit 9cb2dde54b
2 changed files with 14 additions and 9 deletions

View File

@ -3,7 +3,7 @@
目录结构比较简单,主要就实现了三个接口,其中 `api/screenshots` 即是项目中所使用到的图片生成接口,在真实生产项目中可以把该服务单独部署,于内网调用,这样利于做一些鉴权之类的处理。
另外 `api/printscreen` 这个接口实现的是网页截图的 API该接口可以传入一个 URL 对整个网页进行截图,本项目中没有使用到此接口。
另外 `api/printscreen` 这个接口实现的是网页截图的 API该接口可以传入一个 URL 对整个网页进行截图,可用于合成长图分享海报等场景,本项目中没有使用到此接口。
### 安装依赖
@ -19,22 +19,25 @@
#### 打包说明
由于项目依赖在打包时会出现许多未知错误,所以在 **webpack.config.js** 中过滤掉了依赖,打包出来的文件会非常小因为只包含项目代码,需要将 `package.json` 放到服务器上安装依赖来使用,具体的做法类似以下步骤:
直接打包可能会出现未知错误,本项目在 **webpack.config.js** 中过滤掉了依赖(打包出来的文件会非常小因为只包含项目代码),建议将 `package.json` 放到服务器上主动安装依赖来使用,具体的做法类似以下步骤:
1. 将项目中的 `package-build.json` 上传到服务器中,重命名为 `package.json`
2. 目录下执行 `yarn` 安装依赖
3. 将打包的 `dist/server.js` 放在同个目录中
4. `pm2 start server.js` 服务启动
3. 执行 `npm run build`
4. 将打包的 `dist/server.js` 放在 `node_modules` 同级目录中
5. 使用 `pm2 start server.js` 启动并守护服务
### 服务器配置
在 Linux 环境下npm 自动安装的 Chrome 浏览器有可能会出错,所以推荐从外部安装好浏览器,再给项目中的配置文件 `src/config.ts` 设置好路径,例如
在 Linux 环境下推荐主动安装浏览器,再给项目中的配置文件 `src/config.ts` 设置好路径:
```js
exports.executablePath = '/opt/google/chrome-unstable/chrome'
```
一些可能用到的 linux 命令参考:
> `/opt/google` 为默认路径,一般不会变动
一些可能用到的 linux 命令参考Debian GNU/Linux 9
```shell
google-chrome --version # 查看浏览器版本号
@ -42,6 +45,8 @@ apt-get update
apt-get install -y google-chrome-stable // 安装最新稳定版谷歌浏览器
```
> 其它系统自行搜索如何安装Chrome推荐使用Docker部署本项目部署[参考说明](https://xp.palxp.com/#/articles/1689319644311?id=docker%e5%ae%b9%e5%99%a8)。
### 生成 API 文档
`build:apidoc`

View File

@ -2,8 +2,8 @@
* @Author: ShawnPhang
* @Date: 2020-07-22 20:13:14
* @Description:
* @LastEditors: houchaowei@zhihu.com
* @LastEditTime: 2023-09-01 14:51:23
* @LastEditors: ShawnPhang <site: book.palxp.com>
* @LastEditTime: 2023-09-04 10:54:52
*/
const { saveScreenshot } = require('../utils/download-single.ts')
const uuid = require('../utils/uuid.ts')
@ -117,7 +117,7 @@ module.exports = {
queueRun(saveScreenshot, url, { width, height, path, thumbPath, size, quality, prevent, ua, devices, scale, wait }, sign)
.then(() => {
if (!res.headersSent) {
res.setHeader('Content-Type', 'image/jpg')
// res.setHeader('Content-Type', 'image/jpg')
// const stats = fs.statSync(path)
// res.setHeader('Cache-Control', stats.size)
res.json({ code: 200, msg: '截图成功', data: { path, thumbPath } })