英文:
How can I install a command-line tool globally using npm, so that it remains accessible across different Node.js versions?
问题
I am using nvm(Node Version Manager)来管理系统上的多个版本的 Node.js,并希望全局安装一个命令行工具,以便在使用 nvm use <version>
命令切换到不同的 Node.js 版本时仍然可以访问该工具。
我希望该工具能够全局可用,类似于 Python 的 pipx。
我尝试使用 npm install -g <tool>
来全局安装命令行工具,但这种方法只会将工具安装在我当前使用 nvm 的特定版本的 Node.js 文件夹中。当我切换到不同的 Node.js 版本时,该工具将无法访问。
我希望全局安装的工具在 nvm 管理的所有 Node.js 版本中保持可访问,而不受我当前使用的版本的影响,我该如何实现这一点?
英文:
I am using nvm (Node Version Manager) to manage multiple versions of Node.js on my system and
i would like to install a command-line tool globally so that it remains accessible even when I switch to a different Node.js version using the nvm use <version>
command.
I want the tool to be available globally, similar to how pipx with Python.
I have tried installing the command-line tool globally using npm install -g <tool>
. However, this approach only installs the tool within the Node.js folder of the specific version I am currently using with nvm. When I switch to a different Node.js version, the tool becomes inaccessible.
I Want the globally installed tool to remain accessible across all Node.js versions managed by nvm, regardless of the version I am currently using, so how can I achieve this?
答案1
得分: 2
没有办法使用 NVM 来做到这一点,因为 NVM 为每个 Node 版本维护了一个隔离的环境。
您可以创建一个安装包的脚本,该脚本会在您已安装的所有版本上安装该包:
#!/bin/bash
PACKAGE="your-package"
versions=$(nvm ls --no-colors | grep -o -E 'v[0-9]+\.[0-9]+\.[0-9]+')
for version in $versions
do
echo "Installing $PACKAGE on Node.js $version..."
nvm install $version
npm install -g $PACKAGE
done
英文:
There's no way to do that with NVM because NVM keeps an isolated environment for each Node version.
You can make a script that installs a package on all versions that you have installed:
#!/bin/bash
PACKAGE="your-package"
versions=$(nvm ls --no-colors | grep -o -E 'v[0-9]+\.[0-9]+\.[0-9]+')
for version in $versions
do
echo "Installing $PACKAGE on Node.js $version..."
nvm install $version
npm install -g $PACKAGE
done
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论