Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于更改NVM节点版本的Bash脚本_Javascript_Node.js_Bash_Version_Nvm - Fatal编程技术网

Javascript 用于更改NVM节点版本的Bash脚本

Javascript 用于更改NVM节点版本的Bash脚本,javascript,node.js,bash,version,nvm,Javascript,Node.js,Bash,Version,Nvm,我正在尝试将别名添加到我的.bash\u配置文件中,以执行以下操作: xx projname=>cd~/folder\u 1/projname并使用节点版本 如果nvm当前正在使用其他版本,则在nvm上为6 yy projname=>cd~/folder_2/projname如果nvm当前正在使用其他版本,请在nvm上使用节点版本4 我目前已经实现了除最后一部分之外的所有功能,即,如果nvm当前使用的是其他版本,则,如: function xx { cd ~/folder_1/"$1"; n

我正在尝试将别名添加到我的
.bash\u配置文件中
,以执行以下操作:

  • xx projname
    =>
    cd~/folder\u 1/projname
    并使用节点版本 如果nvm当前正在使用其他版本,则在nvm上为6
  • yy projname
    =>
    cd~/folder_2/projname
    如果nvm当前正在使用其他版本,请在nvm上使用节点版本4
我目前已经实现了除最后一部分之外的所有功能,即,如果nvm当前使用的是其他版本,则
,如:

function xx { cd ~/folder_1/"$1"; nvm use v6;}
function yy { cd ~/folder_2/"$1"; nvm use v4;}
处理未完成任务的最佳方式是什么?我想要的是这样的东西:

$ nvm current
v6 <blabla>
运行
nvmcurrent
并查看
v6
的索引是否为false,然后运行
nvmusev6


但我对bash真的很陌生,似乎找不到一个方法来做这件事。蒂亚

您想要获取版本。从您的评论中可以看出:

$ nvm current
v6 <blabla>
然后,将该值与“v6”进行比较。我将使用:

if [ "$version" == "v6" ]; then
   ...
fi
总而言之:

function yy {
    cd ~/folder_2/"$1"
    read version _ <<< $(nvm current)
    if [ "$version" == "v6" ]; then
        nvm use v4
    fi
}
功能yy{
cd~/文件夹_2/“$1”

阅读版本up>我正在使用此脚本自动更改我的节点版本,它与Oh my zsh一起工作,确保已安装nvm,然后将以下脚本添加到.zshrc文件中

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

autoload -U add-zsh-hook
load-nvmrc() {
    local node_version="$(nvm version)"
    local nvmrc_path="$(nvm_find_nvmrc)"

    if [ -n "$nvmrc_path" ]; then
        local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")

        if [ "$nvmrc_node_version" = "N/A" ]; then
            nvm install
        elif [ "$nvmrc_node_version" != "$node_version" ]; then
            nvm use
        fi
    elif [ "$node_version" != "$(nvm version default)" ]; then
        echo "Reverting to nvm default version"
        nvm use default
    fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

我之所以阅读这个问题是因为我遵循bash标记,所以对node.js没有太多的了解。您能指出检查您正在运行的nvm版本的方法吗?可能是吗?
nvm current
给出当前节点版本。输出通常是
v6
nvmuse
切换节点版本,因此第一个单词始终是thnvm版本?还有,它是在标准输出还是标准输出中显示的?你可以检查这句话:
nvm current 2>/dev/null
。如果它确实显示,它就是标准输出;否则,它就是标准输出。是的。它确实显示在标准输出中,这很有效,谢谢。我只需要像这样做一个有点疯狂的条件:
If[“$version”==“v6”*];然后