Add support for a default-npm-packages file

Partial Credit: https://github.com/asdf-vm/asdf-ruby/pull/35
This commit is contained in:
Alex Piechowski 2017-07-30 23:37:03 -05:00
parent be1deeebd3
commit f3773e5371
2 changed files with 26 additions and 0 deletions

View File

@ -35,6 +35,16 @@ asdf uses the `.tool-versions` for auto-switching between software versions. To
legacy_version_file = yes
```
## Default npm Packages
asdf-nodejs can automatically install a set of default set of npm package right after installing a Ruby version. To enable this feature, provide a `$HOME/.default-npm-packages` file that lists one package per line, for example:
```
lodash
request
express
```
## Using a dedicated OpenPGP keyring
The `gpg` commands above imports the OpenPGP public keys in your main OpenPGP keyring. However, you can also use a dedicated keyring in order to mitigate [this issue](https://github.com/nodejs/node/issues/9859).

View File

@ -226,8 +226,24 @@ verlte() {
[ "$1" = "$(echo -e "$1\n$2" | sort_versions | head -n1)" ]
}
install_default_npm_packages() {
local default_npm_packages="${HOME}/.default-npm-packages"
if [ ! -f $default_npm_packages ]; then return; fi
for name in $(cat $default_npm_packages); do
echo -ne "\nInstalling \e[33m${name}\e[39m npm package... "
if npm install -g $name > /dev/null 2>&1; then
echo -e "\e[32mSUCCESS\e[39m"
else
echo -e "\e[31mFAIL\e[39m"
fi
done
}
tmp_download_dir="$(mktemp -d -t 'asdf_nodejs_XXXXXX')"
trap 'rm -rf "${tmp_download_dir}"' EXIT
install_nodejs "$ASDF_INSTALL_TYPE" "$ASDF_INSTALL_VERSION" "$ASDF_INSTALL_PATH" "$tmp_download_dir"
install_default_npm_packages