NVM是一个伟大的工具,使我们能够随意更改节点版本。 我想发展好东西,这将允许用户更改NPM版本随意,主要用于测试库代码的目的,发布之前。
所以,我的工作“@ oresoftware / npm.version”,其中有一个可执行文件,称为npmv将在$ PATH改变了当前的NPM版本。
用户运行:
npmv use 5.3
如果没有安装5.3后,将其安装到与用户主目录,然后将符号链接该版本全球空间。
以下是我有:
#!/usr/bin/env bash
set -e;
desired_npm_version="$1"
if [ -z "$desired_npm_version" ]; then
echo >&2 "No desired npm version provided.";
exit 1;
fi
desired_v="$npmvv/$desired_npm_version"
if [ ! -d "$desired_v" ]; then
mkdir -p "$desired_v";
cd "$desired_v";
npm init -f --silent;
npm install "npm@$desired_npm_version" -f --silent
fi
cd "$npmvv/$desired_npm_version";
npm_root="$(npm root -g)";
npm_bin="$(npm bin -g)";
rm -rf "$npm_root/npm";
rm -rf "$npm_bin/npm";
rm -rf "$npm_bin/npx";
ln -sf node_modules/npm "$npm_root"
ln -sf node_modules/.bin/npm "$npm_bin/npm"
ln -sf node_modules/.bin/npx "$npm_bin/npx"
# end
不要运行它 ,因为它可能会破坏你的NPM的安装。 我想不通为什么它不工作,但它不会在最起码与NVM(节点版本管理器)发挥出色。
需要注意的是NPM只配备了两个可执行文件(NPM,NPX)。
如果你知道你在做什么,看到的东西,可能在脚本中失踪,请让我知道。 我能想到的唯一的事情是,也许运行ln -s <source-file> <target-link>
针对这本身就是一个符号,不能正常工作?