python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python自动化管理Node.js项目

基于Python和wxPython构建自动化Node.js项目管理工具

作者:winfredzhang

在前端或 Node.js 开发过程中,开发者经常需要管理大量的项目文件夹,本文介绍了一款基于Python和wxPython开发的桌面工具,旨在提升前端和Node.js开发效率,希望对大家有所帮助

背景

在前端或 Node.js 开发过程中,开发者经常需要管理大量的项目文件夹。频繁地在各个目录间切换、手动打开终端执行 node app.js、再手动打开浏览器输入 localhost:端口,以及定期备份代码到优盘,这些重复性劳动降低了开发效率。为了解决这些痛点,我们使用 Python 和 wxPython 图形库开发了一款集“项目管理、一键联动运行、自动化备份”于一体的桌面工具。

目标

方法

过程:核心功能实现深度解析

1. 点击项目展示文件结构

这是程序最基础的交互逻辑。通过绑定 wx.EVT_LIST_ITEM_SELECTED 事件,当用户点击左侧项目列表时,触发路径扫描。

技术实现:

2. 自动化压缩至“优盘”(智能备份路径)

程序预设了备份根目录(如 D:\nodejs程序集,可代表优盘挂载点)。

核心代码分析:

def on_smart_zip(self, event):
    # 1. 获取当前文件夹名并创建备份子目录
    folder_name = os.path.basename(self.current_folder)
    target_dir = os.path.join(r"D:\nodejs程序集", folder_name)
    if not os.path.exists(target_dir): os.makedirs(target_dir)

    # 2. 遍历右侧 Checkbox 选中的文件
    with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as z:
        for item in checked:
            full_path = os.path.join(self.current_folder, item)
            # 3. 如果是文件夹则递归压缩,文件则直接写入
            if os.path.isfile(full_path):
                z.write(full_path, item)
            else:
                for root, _, files in os.walk(full_path):
                    for f in files:
                        fp = os.path.join(root, f)
                        z.write(fp, os.path.relpath(fp, self.current_folder))

该功能的精髓在于使用 os.walk 进行递归扫描,确保选中的子文件夹及其内部成千上万个文件能被完整地封装进 ZIP 包。

3. 一键运行 Node.js 指令

这是提高生产力的核心。通过 subprocess 模块,我们不再需要手动打开 cmd

关键点:

4. Chrome 联动与独立端口

每个 Node.js 项目通常占用不同的端口(如 3000, 8080)。我们在数据库中为每个路径维护了一个 port 字段。

实现流程:

url = f"http://localhost:{self.port_ctrl.GetValue()}"
subprocess.Popen([CHROME_PATH, url])

通过直接调用 Chrome 的绝对路径并传入 URL,实现“运行即打开”的无缝体验。

结果

通过上述逻辑,我们成功构建了一个三栏式的管理台:

效果如下: 

到此这篇关于基于Python和wxPython构建自动化Node.js项目管理工具的文章就介绍到这了,更多相关Python自动化管理Node.js项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文