使用 NVM 在 Sublime 中设置路径

Posted

技术标签:

【中文标题】使用 NVM 在 Sublime 中设置路径【英文标题】:Setting up paths in Sublime with NVM 【发布时间】:2014-06-02 16:36:36 【问题描述】:

我在 OSX 上使用NVM 作为我的节点版本管理器,这很好,只是它给我的 IDE 带来了多个问题。我正在使用 Sublime Text,并且我曾经使用过的大多数插件都在 /usr/local/bin 查找 nodejs,并且由于我使用的是 NVM 节点显然在该位置不可用,而是在 /Users/$User/.nvm/$NodeVersion/bin/node 可用。

我可以选择在该插件的配置中更新 nodejs 的路径,但是当我安装另一个插件时,我必须做同样的事情。同样适用于使用 CoffeeScript、LESScss 等。

此外,当我通过 NVM 更新我的节点版本时,我必须再次更新所有配置中的路径。 NVM 在尝试为我解决一个问题时,实际上已经产生了更多问题。

更新: 很长一段时间后,我终于能够使用 isaacs 出色的解决方案 - nave 解决问题。 nave usemain stable 命令,足以理解你的情绪 :)

【问题讨论】:

有同样的问题。只需设置nvm alias default <version/>。从这个答案***.com/a/34777308/1446728 @FemiOni - 我已经这样做了,但 SublimeText 中的问题仍然存在。它在/usr/bin/local/ 中查找节点,显然在那里找不到可执行文件。你能解释一下nvm alias default 14.1.0 应该如何改变这个吗? @tusharmath – (抱歉,这里是菜鸟) – 所以基本上 nave 在您的设置中替换了 nvm?还是你并排运行它们?为什么nave usemain stable 为您工作?之后我的/usr/local/bin 仍然没有节点文件。 @tusharmath 为了让它工作,你必须完全卸载 nvm 吗? 【参考方案1】:

2020 年的新答案!

您现在可以将以下单行添加到您的.bashrc.zshrc 等。

export NVM_SYMLINK_CURRENT=true

然后,无论您需要您的节点路径,它总是在同一个地方:

~/.nvm/current/bin/node

#OR

$HOME/.nvm/current/bin/node

延伸阅读:https://medium.com/@danielzen/using-nvm-with-webstorm-or-other-ide-d7d374a84eb1

【讨论】:

【参考方案2】:

我正在使用 ubuntu 18,这就是我能够解决它的方法

打开您的命令提示符并访问/home/username/.config/sublime-text-3/Packages 创建一个新文件并输入此代码

# $HOME/.config/sublime-text-3/Packages/node-env.py

import os
import getpass

nvm_path = '/home/%(user)s/.nvm' % 'user': getpass.getuser()
nvm_default_file_path = '%(root)s/alias/default' % 'root': nvm_path
nvm_node_root = '%(root)s/versions/node' % 'root': nvm_path

# Grab default alias
with open(nvm_default_file_path, 'r') as content_file:
   content = content_file.read()

# Prepend 'v' to match folder names
version = content.strip()
if version[0] != 'v':
version = 'v' + version

# Take highest valid folder name
versions = os.listdir(nvm_node_root)
found = sorted([v for v in versions if v.startswith(version)])[-1]

if found == None:
  print("Failed to configure node: no valid version found for %(version)s" %'version': version)
else:
  print("Configure node: %(version)s" % 'version': found)
  node_path = "%(root)s/%(version)s" % 'root': nvm_node_root, 'version': found 
  print("Node path: %(root)s" % 'root': node_path)
  path = "%(root)s/bin:%(root)s/lib:%(path)s" % 'root':node_path,'path':os.environ["PATH"]
  os.environ["PATH"] = path

将此文件另存为“node-env.py”。

它有助于解决大多数 javascript 库的问题,例如 Typescript 插件等。

【讨论】:

【参考方案3】:

CURRENT_NODE_VERSION=$(nvm current); nvm which $CURRENT_NODE_VERSION

【讨论】:

【参考方案4】:

对于 Linux 用户,

默认情况下,nvm 在你的 .bashrc 中写入一些节点路径,并且只有在你处于 bash 模式时才会加载。

所以你只需要像这样将两条路径线移动到文件的底部:

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# Set the NVM path for my Sublime before return.
export NVM_DIR="/home/<yourUser>/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

【讨论】:

【参考方案5】:

我正在使用n。我也尝试过nave,但我在安装 nvm 时遇到了问题。希望这会有所帮助。

【讨论】:

【参考方案6】:

你可以使用命令“nvm which node-version”比如

nvm which 0.12.0

【讨论】:

示例应该是nvm which 0.12.0 而不是node which 0.12.0 这并不能解决任何问题。这只是为您提供您正在使用的节点的路径。他已经知道了。 我试过nave,但它似乎不起作用,所以这至少帮助我找到了路径并更改了已安装包的设置。如果我发现自己不得不反复这样做,我想我会让nave 解决方案起作用。【参考方案7】:

从github.com/xtuple/nvm 安装 NVM

运行此命令将 NVM 安装为全局,您会看到一切正常

wget -qO- https://raw.githubusercontent.com/xtuple/nvm/master/install.sh | sudo bash

【讨论】:

现在我明白你为什么链接到 xtuple。如果可以的话,我会撤消反对票。 这是一个非常好的选择。而且它有机会工作,不像 Azadious 发布的答案。【参考方案8】:

我昨天遇到了类似的问题。我找到了一个 python 脚本,它为 Sublime 导出我的节点路径(nvm 节点路径)。我为 OSX 和 ST3 更新了它。你可以在这里找到它: https://gist.github.com/joesepi/11269417

将该脚本放到您的 Packages 目录中,ST3 的路径在脚本的 cmets 中。您可能还必须重新启动 ST。如果你更新你的节点版本,你也需要更新那个脚本。希望对您有所帮助!

【讨论】:

这也为我完成了这项工作,谢谢!我对脚本进行了一些改进,使其成为每个人的插件并引用当前的 nvm 'default' 别名

以上是关于使用 NVM 在 Sublime 中设置路径的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Sublime 3 中设置 scss 语法?

在 Sublime Text2 中设置 Python 版本时遇到问题

Mac中设置Sublime快速在终端中使用命令打开项目

sublime中设置scala编译运行

根据环境在 Micronaut 中设置 Pub Sub 主题

在 rclpy ROS2 的 pub&sub 中设置端点