Skip to content

Commit

Permalink
feat: update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
nailiable committed Dec 28, 2024
1 parent a1a9f28 commit 8c8765e
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 14 deletions.
61 changes: 49 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,43 +14,80 @@ V1版本在main分支,纯node.js命令行实现的,对普通大众来说较
- 🌞 黑白双煞⚔️亮暗双主题 + 多语言支持,夜间使用不瞎眼
- 🎦 拥有桌面端electron版本,同时未来会考虑出uni-app版本

## 💻 演示
## 📦 客户端版本

由于这个项目带点敏感属性,目前可能没有计划部署到线上,请自行clone到本地运行。
下崽器得益于`electron`框架,支持`Windows``macOS``Linux`中运行;点击前往[release](https://github.com/Groupguanfang/music-list-downloader/releases)页面下载对应版本即可。

得益于`naily`框架 + `unplugin-rpc`插件的跨平台性,后端不仅仅支持传统`http`协议,也支持了electron的`ipc`协议。

因此客户端内已经内置了一个基于`ipc`协议的后端服务,无需手动填写后端地址即可直接使用(当然,如果你想,也可以手动填写后端地址也是支持的)。

## 💻 网页版演示

由于这个项目带点敏感属性,目前暂时可能没有计划部署到线上(也有可能后期静态版出来之后会部署到`github pages`),当前请自行clone到本地运行。

## 💫 如何运行

首先得有`node.js`环境,然后打开控制台,安装依赖:
首先得有`node.js` + `pnpm`环境,如果没有请自行谷歌搜索如何安装,这里不再赘述。

```bash
npm install
```
### 准备

项目使用的是`pnpm`,如果没有安装,可以安装一下:
打开控制台,安装依赖:

```bash
npm install -g pnpm
pnpm install
```

然后运行这个命令开始编译:

```bash
# 编译网页版
pnpm build

# 编译electron版本
pnpm build:electron
```

编译完成后,运行这个命令启动服务:
网页版产物和electron产物都在`dist`目录下,但是产物的目录结构和编译格式都不一样,具体不一样的地方在:

#### 网页版

- 网页版会使用`vite-ssg`编译,产物拥有多个`.html`页面,有利于搜索引擎收录
- 网页版会编译后端,后端产物在`dist/backend`目录下

#### electron版本

- 网页版会直接使用`vite build`编译,并且除`dist`目录外,还会编译出`dist_electron`,主进程和预加载脚本在`dist_electron`

如果你编译了electron版本,想要启动网页版,请重新执行`pnpm build`编译网页版后再启动,否则可能会报错。

### 启动网页版

下崽器无论如何都得需要一个后端支撑。目前,暂时只能使用`pnpm preview`来启动网页版。

未来会在前端出一个检测功能,如果后端请求失败,则让用户自行填写可用的后端服务地址,这样也可以完全静态化部署到任何地方(如`github pages`)。

```bash
# 启动网页版,同时会启动后端+前端
pnpm preview
```

控制台会打印出服务的地址,打开浏览器访问即可。要注意的是,这个项目使用[vitesse-naily](https://github.com/nailyjs/vitesse-naily)作为模版,所以编译出来的产物并不是一个静态网站,而是一个需要运行在node.js环境下的服务,所以需要运行在node.js环境下。
### 只启动后端服务

`naily`框架伸缩自由,后端服务可以单独启动。你可以通过指定环境变量`PORT`来指定后端服务启动的端口,默认是`1000`

```bash
# 指定端口为1001
PORT=1001 pnpm preview:backend
# 直接启动,默认端口为1000
pnpm preview:backend
```

## ✍️ 说明

- 本工具仅供学习交流使用,不得用于商业用途。
本工具仅供学习交流使用,不得用于商业用途。

## License & Author
## 📄 License & Author

- Author: [Naily Zero](https://github.com/Groupguanfang)
- License: MIT
6 changes: 4 additions & 2 deletions backend/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ export const app = new RpcBootstrap()
.use(ConfigPlugin())

// It will be called when environment is production mode
if (import.meta.env.PROD && env.NODE_ENV === 'production')
if (import.meta.env.PROD && env.NODE_ENV === 'production') {
const port = env.PORT ? Number(env.PORT) : 1000
// eslint-disable-next-line no-console
app.run(1000).then(() => console.log(`Server is running on http://localhost:1000 in ${app.getBaseURL()}`))
app.run(port).then(() => console.log(`Server is running on http://localhost:${port} in ${app.getBaseURL()}`))
}

0 comments on commit 8c8765e

Please sign in to comment.