1111mp / nvm-desktop

Node Version Manager Desktop - A desktop application to manage multiple active node.js versions.
https://github.com/1111mp/nvm-desktop
MIT License
745 stars 42 forks source link

增加一个配置导入导出的功能 #62

Closed TanxiangCode closed 7 months ago

TanxiangCode commented 7 months ago

项目选项卡中,配置了很多项目。当我重装系统后,我需要重新手动添加项目目录,这将是会是一个很大的工作量。并且,如果在添加项目时可以支持多选就更好了。因为目前来说,项目都会存放在特定的某个大目录之下。

1111mp commented 7 months ago

项目选项卡中,配置了很多项目。当我重装系统后,我需要重新手动添加项目目录,这将是会是一个很大的工作量。

配置的导入导出功能本身实现起来其实并不麻烦,但是在nvm-desktopprojects界面添加项目并为其指定node版本的时候,需要在该目录下创建一个.nvmdrc文件并写入版本号。所以在导入导出的时候,如果批量在每个项目目录下创建.nvmdrc文件(因为.nvmdrc一般会添加到.gitignore被忽视)这样会不会对用户来说体验不是很好。或者说导入配置的时候只是单纯在projects界面添加所有项目的数据,而不为其选中之前的node版本(用户需要手动再为其选择版本)。

或者你有更好的想法也可以交流一下。

并且,如果在添加项目时可以支持多选就更好了。因为目前来说,项目都会存放在特定的某个大目录之下。

多选的功能实现起来也不麻烦 😄 后续我会实现一下。

不过你倒是提醒了我一点,是否应该支持workspace的功能。比如parent目录下设置了.nvmdrc,其所有子项目child(子目录)如果没有设置过.nvmdrc,那就是使用其父目录下的.nvmdrc指定的版本。

|-- parent
    |-- .nvmdrc
    |-- child01
    |-- child02
    |-- child03
    |-- ...

你觉得workspace这种功能可以很好解决你的需求吗,如果觉得可以后续我会实现,当然你有更好的想法也欢迎。

TanxiangCode commented 7 months ago

导入的过程中,可以根据配置文件,确定是否存在目标项目,如果存在则判断项目中是否已经存在了.nvmdrc,如果已经存在,直接跳过并读取其node版本即可。一般来说,对于需要使用导入的用户是有预期的,即他知道导入后是什么样的。

至于workspace还是有必要的,这样UI中也相应的有了分组的功能,方便管理。

1111mp commented 7 months ago

目前在arch分支已经实现了多选workspace的功能(workspace主要由nvmd-command来提供支持)。

导入的过程中,可以根据配置文件,确定是否存在目标项目,如果存在则判断项目中是否已经存在了.nvmdrc,如果已经存在,直接跳过并读取其node版本即可。一般来说,对于需要使用导入的用户是有预期的,即他知道导入后是什么样的。

关于配置的导入导出目前的想法是:支持nvm-desktop内用户所有的设置数据,包括主题颜色以及设置中心里面自定义的设置,数据格式准备使用最简单的json文件。对于导入projects相关的数据的时候会提供一个勾选框,让用户来控制是否支持单纯导入projects这部分数据,还是在导入的同时去检索项目目录下以及处理.nvmdrc文件相关的工作。

1111mp commented 7 months ago

最新的 Release v3.2.0 已经支持了该功能,那么我就先关闭这个issue了,当然后续如果有任何问题都可以随时重新打开此issue。