dotfiles/nodejs/install.sh

60 lines
2.5 KiB
Bash
Executable File

#!/bin/sh
DIR=$(readlink -f "$(dirname "$0")")
. "$DIR/../env.sh"
# install specific version
if [ -n "$1" ]; then
if command -v node 1>/dev/null 2>&1 && [ "$1" != "$(node -v)" ]; then
NODE_URL=https://nodejs.org/dist
in_china && NODE_URL=https://npm.taobao.org/mirrors/node
if [ "$1" = 'ls' ]; then
curl -s $NODE_URL/index.json | jq '.[] | "\(.version) \(if .lts then "(lts)" else "" end)"' -r | less
exit
else
FN=node-$1-linux-x64.tar.gz
wget -O "/tmp/$FN" "$NODE_URL/$1/$FN"
sudo tar zxvf "/tmp/$FN" --strip 1 -C /usr/local/
rm "/tmp/$FN"
fi
fi
else
# install from distribution repo
case "$PM" in
apt)
sudo apt install -y nodejs npm yarnpkg
;;
pacman)
sudo pacman -S --needed nodejs npm yarn
;;
esac
fi
# install nvm
if command -v fish 2>/dev/null; then
fish -c "fisher add jorgebucaran/nvm.fish"
else
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
fi
# config mirrors for CHINA
if in_china; then
sudo npm install cnpm -g --registry=https://r.npm.taobao.org
yarnpkg config set registry https://registry.npm.taobao.org --global && \
yarnpkg config set disturl https://npm.taobao.org/dist --global && \
yarnpkg config set sass_binary_site https://npm.taobao.org/mirrors/node-sass --global && \
yarnpkg config set electron_mirror https://npm.taobao.org/mirrors/electron/ --global && \
yarnpkg config set puppeteer_download_host https://npm.taobao.org/mirrors --global && \
yarnpkg config set chromedriver_cdnurl https://npm.taobao.org/mirrors/chromedriver --global && \
yarnpkg config set operadriver_cdnurl https://npm.taobao.org/mirrors/operadriver --global && \
yarnpkg config set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs --global && \
yarnpkg config set selenium_cdnurl https://npm.taobao.org/mirrors/selenium --global && \
yarnpkg config set sqlite3_binary_host_mirror https://foxgis.oss-cn-shanghai.aliyuncs.com/ --global && \
yarnpkg config set profiler_binary_host_mirror https://npm.taobao.org/mirrors/node-inspector/ --global && \
yarnpkg config set chromedriver_cdnurl https://cdn.npm.taobao.org/dist/chromedriver --global && \
yarnpkg config set node_inspector_cdnurl https://npm.taobao.org/mirrors/node-inspector --global && \
yarnpkg config set sentrycli_cdnurl https://npm.taobao.org/mirrors/sentry-cli
fi