diff --git a/src/node/README.md b/src/node/README.md index b98391922..3fd7cb1fc 100644 --- a/src/node/README.md +++ b/src/node/README.md @@ -19,6 +19,7 @@ Installs Node.js, nvm, yarn, pnpm, and needed dependencies. | nodeGypDependencies | Install dependencies to compile native node modules (node-gyp)? | boolean | true | | nvmInstallPath | The path where NVM will be installed. | string | /usr/local/share/nvm | | nvmVersion | Version of NVM to install. | string | latest | +| npmInstallPackages | NPM Packages to install in the user global environment. | string | | ## Customizations diff --git a/src/node/devcontainer-feature.json b/src/node/devcontainer-feature.json index 0123fdb73..80f6cf232 100644 --- a/src/node/devcontainer-feature.json +++ b/src/node/devcontainer-feature.json @@ -36,6 +36,11 @@ ], "default": "latest", "description": "Version of NVM to install." + }, + "npmInstallPackages": { + "type": "string", + "default": "", + "description": "Additional npm packages to install under the username env." } }, "customizations": { diff --git a/src/node/install.sh b/src/node/install.sh index 9a696ca54..71641e2d2 100755 --- a/src/node/install.sh +++ b/src/node/install.sh @@ -10,6 +10,7 @@ export NODE_VERSION="${VERSION:-"lts"}" export NVM_VERSION="${NVMVERSION:-"latest"}" export NVM_DIR="${NVMINSTALLPATH:-"/usr/local/share/nvm"}" +export NPM_INSTALL_PACKAGES="${NPMINSTALLPACKAGES:-""}" INSTALL_TOOLS_FOR_NODE_GYP="${NODEGYPDEPENDENCIES:-true}" # Comma-separated list of node versions to be installed (with nvm) @@ -270,4 +271,8 @@ rm -rf /var/lib/apt/lists/* mkdir -p "${NVM_DIR}/versions" chmod -R g+rw "${NVM_DIR}/versions" +if [ ! -z "${NPMINSTALLPACKAGES}" ]; then + su ${USERNAME} -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm use default && npm install -g ${NPMINSTALLPACKAGES}" +fi + echo "Done!"