我开始喜欢asdf在我可以控制的项目中为我的入职故事所做的一切。
然而,对于那些有一个奇怪的命令的项目,它必须使用nvm,并且无论出于何种原因都不能迁移到asdf,我想为某些无法提交的目录使用.tool-versions
:
可能类似于:
~/.asdf/projects/
home_me_projects_clientname_projectname.toolversions
home_me_projects_someotherclientname_projectname.toolversions
那么也许在我的~/.tool-versions
和~/.direnv
中有某种direnv魔术,它会根据我所在的目录神奇地选择上面正确的一个?
还有谁需要这样的解决方案?
有几种方法可以满足这一要求:
-
如果你想为你的项目创建一个
.tool-versions
文件,但从不将它们提交到Git,请尝试为你的.tool-versions
文件设置一个全局gitignore。然后你可以在任何地方使用它们,而不用担心将它们投入到任何项目中。(参见https://stackoverflow.com/a/7335487/1245380)。 -
将每个项目目录包装在只包含项目的
.tool-versions
文件的外部目录中。例如:~/projects |--project_1 | |--.tool-versions | |--project_1 |--project_2 | |--.tool-versions | |--project_2
这样可以确保在内部
project_1
和project_2
目录中处理源代码时使用.tool-versions
文件中的版本信息 -
使用nodejs-plugins遗留版本文件支持从
.nvmrc
或.node-version
文件中读取版本:https://github.com/asdf-vm/asdf-nodejs#nvmrc-和节点版本支持