Skip to content

BeginnerCong/scripts-hub

Repository files navigation

scripts-hub - 脚本库

License Platform Node.js

图形化脚本库 - 收集、预览和管理分散的脚本文件

简介

这是一个基于 Electron 的桌面应用程序,用于收集、预览和管理各种类型的脚本文件。它可以帮助您整理分散在不同位置的脚本文件,并提供便捷的查看和管理功能。

功能特性

  • 支持多种脚本文件类型(Shell、PowerShell、Python、JavaScript、Batch 等)
  • 图形化界面,易于使用
  • 文件内容预览和语法高亮
  • 文件信息查看(大小、修改时间等)
  • 搜索和过滤功能
  • 扫描目录功能,批量添加脚本文件
  • 脚本分类和标签管理
  • 统计信息展示

技术栈

  • Electron (桌面应用框架)
  • React (前端框架)
  • Node.js (后端服务)
  • Vite (前端构建工具)

环境要求

  • Node.js >= 20.19.4
  • npm >= 10.8.2

安装

使用一键安装命令自动安装所有依赖:

npm run install:all

或者手动安装:

# 安装根目录依赖
npm install

# 安装后端依赖
cd backend
npm install
cd ..

# 安装前端依赖
cd frontend
npm install
cd ..

开发

# 启动 Electron 应用(开发模式)
npm run dev

Windows 环境下终端日志乱码问题解决

在 Windows 环境下开发时,如果遇到终端日志中文乱码问题,可以修改package.json中的命令,在命令前添加 chcp 65001 && 来设置 UTF-8 编码:

{
  "scripts": {
    "dev": "chcp 65001 && set NODE_ENV=development&& cd frontend && npm run build && cd .. && electron .",
    "dev:prod": "chcp 65001 && set NODE_ENV=production&& cd frontend && npm run build && cd .. && electron ."
  }
}

这样可以确保在 Windows 命令行中正确显示中文日志信息。

构建

前端构建

# 构建前端应用
npm run build:frontend

Electron应用构建

# 打包 Electron 应用(包含前端构建)
npm run build

平台特定构建

# 构建 Windows 应用
npm run build-win

# 构建 Linux 应用
npm run build-linux

# 构建 macOS 应用
npm run build-mac

# 构建 Windows 便携版应用
npm run build-portable

# 构建 Windows 安装程序
npm run build-installer

# 构建所有平台应用
npm run dist-all

构建输出文件将位于以下目录:

  • dist-electron/ - Electron构建输出目录
  • release/ - 打包后的可执行文件目录

图标生成与配置

本项目使用 electron-icon-builder 工具来生成应用所需的各种尺寸图标。

图标生成步骤

  1. 准备一张 1024x1024 像素的 PNG 格式图片,命名为 icon.png
  2. 将该图片放置在 resources/ 目录下
  3. 运行以下命令生成各种尺寸的图标:
npm run electron:generate-icons

该命令会根据 resources/icon.png 生成多种尺寸的图标文件,并输出到 build/icons/ 目录下。

图标类型说明

Electron 应用中使用的图标主要分为以下几类:

  1. 窗口图标:应用窗口左上角显示的图标
  2. 任务栏图标:应用在任务栏/ dock 中显示的图标
  3. 安装包图标:安装程序文件的图标
  4. 桌面图标:安装后在桌面创建的快捷方式图标

项目中的图标配置

在项目中,图标配置主要体现在以下几个地方:

  1. 窗口图标配置: 在 electron/main.js 文件中,通过 icon 属性设置窗口图标:

    mainWindow = new BrowserWindow({
      // ...
      icon: path.join(__dirname, '../resources/icon.png'),
      // ...
    });
  2. 构建图标配置: 通过 electron-icon-builder 生成的图标位于 build/icons/ 目录下,包含多种格式和尺寸:

    • icon.icns - macOS 应用图标
    • icon.ico - Windows 应用图标
    • 各种尺寸的 PNG 图片 - 用于不同场景
  3. 资源文件: 项目中的图标资源文件位于:

    • resources/icon.png - 原始图标文件
    • build/icons/ - 生成的各种图标文件

使用说明

添加脚本文件

  1. 点击界面右上角的"添加脚本"按钮
  2. 选择要添加的脚本文件
  3. 文件将自动添加到脚本库中

扫描目录

  1. 点击界面右上角的"扫描目录"按钮
  2. 选择要扫描的目录
  3. 设置扫描参数(可选)
  4. 点击"开始扫描"按钮
  5. 扫描完成后,选择要添加的脚本文件

查看脚本

  1. 在脚本列表中点击任意脚本
  2. 可以查看脚本的详细信息和内容
  3. 支持语法高亮显示

编辑脚本信息

  1. 在脚本列表中点击脚本右侧的"编辑"按钮
  2. 可以修改脚本的名称、描述、标签等信息
  3. 保存修改后信息将自动更新

搜索和过滤

  1. 使用顶部搜索框可以按名称、描述、标签搜索脚本
  2. 使用左侧边栏可以按脚本类型过滤
  3. 点击搜索设置图标可以设置精确匹配和大小写敏感选项

项目结构

scripts-hub/
├── backend/              # 后端服务
│   ├── data/             # 数据存储目录
│   ├── utils/            # 工具函数
│   ├── config.js         # 配置文件
│   └── index.js          # 后端入口文件
├── frontend/             # 前端应用
│   ├── public/           # 静态资源
│   ├── src/              # 源代码
│   │   ├── components/   # React组件
│   │   ├── context/      # React上下文
│   │   ├── hooks/        # React自定义钩子
│   │   ├── services/     # API服务
│   │   ├── styles/       # 样式文件
│   │   ├── utils/        # 工具函数
│   │   ├── App.jsx       # 主应用组件
│   │   └── main.jsx      # 入口文件
│   └── vite.config.js    # Vite配置
├── electron/             # Electron主进程
│   ├── main.js           # 主进程文件
│   └── preload.js        # 预加载脚本
├── resources/            # 应用资源
│   ├── icons/            # 应用图标
│   └── icon.png          # 应用主图标
└── README.md             # 项目说明文档

数据存储

应用数据存储在以下目录:

  • Windows: C:\Users\[用户名]\AppData\Roaming\scripts-hub\
  • macOS: ~/Library/Application Support/scripts-hub/
  • Linux: ~/.config/scripts-hub/

数据包括:

  • data/datafile/scripts-datafile.json - 脚本元数据文件

当打包成单文件应用时,数据将存储在用户数据目录中,确保数据在应用更新时不会丢失。

环境变量配置

应用支持通过环境变量进行配置,可以在 backend/.env 文件中设置以下参数:

  • MAX_SCAN_FILES - 扫描目录时的最大文件数限制(默认:10000)
  • SCAN_RECURSIVE - 是否启用递归扫描(默认:true)
  • SCAN_SHOW_PROGRESS - 扫描目录时是否显示进度信息(默认:true)

示例 .env 文件:

MAX_SCAN_FILES=5000
SCAN_RECURSIVE=true
SCAN_SHOW_PROGRESS=true

贡献

欢迎提交 Issue 和 Pull Request 来帮助改进项目。

许可证

本项目采用 MIT 许可证,详情请见 LICENSE 文件。

作者

BeginnerCong

About

收集、预览和管理分散的脚本文件

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages