From fabb36abbba982d404f11fda4bbe0bbedc06be5d Mon Sep 17 00:00:00 2001 From: Dawid Makowski Date: Wed, 20 May 2020 14:58:31 +0800 Subject: [PATCH 1/2] Adding support for PNPM more info here https://pnpm.js.org/en/installation --- docker-compose.yml | 1 + env-example | 1 + workspace/Dockerfile | 14 ++++++++++++++ 3 files changed, 16 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 3864bdec..71e96230 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -87,6 +87,7 @@ services: - NVM_NODEJS_ORG_MIRROR=${WORKSPACE_NVM_NODEJS_ORG_MIRROR} - INSTALL_NODE=${WORKSPACE_INSTALL_NODE} - NPM_REGISTRY=${WORKSPACE_NPM_REGISTRY} + - INSTALL_PNPM=${WORKSPACE_INSTALL_PNPM} - INSTALL_YARN=${WORKSPACE_INSTALL_YARN} - INSTALL_NPM_GULP=${WORKSPACE_INSTALL_NPM_GULP} - INSTALL_NPM_BOWER=${WORKSPACE_INSTALL_NPM_BOWER} diff --git a/env-example b/env-example index ee6eee4b..43c83562 100644 --- a/env-example +++ b/env-example @@ -98,6 +98,7 @@ WORKSPACE_NVM_NODEJS_ORG_MIRROR= WORKSPACE_INSTALL_NODE=true WORKSPACE_NODE_VERSION=node WORKSPACE_NPM_REGISTRY= +WORKSPACE_INSTALL_PNPM=false WORKSPACE_INSTALL_YARN=true WORKSPACE_YARN_VERSION=latest WORKSPACE_INSTALL_NPM_GULP=true diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 0c7d2130..c3c5a341 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -723,6 +723,20 @@ RUN if [ ${NPM_REGISTRY} ]; then \ . ~/.bashrc && npm config set registry ${NPM_REGISTRY} \ ;fi + +########################################################################### +# PNPM: +########################################################################### + +USER laradock + +ARG INSTALL_PNPM=false + +RUN if [ ${INSTALL_PNPM} = true ]; then \ + npx pnpm add -g pnpm \ +;fi + + ########################################################################### # YARN: ########################################################################### From a074389e28f1d221679f79b93f843e30d15cb3a5 Mon Sep 17 00:00:00 2001 From: Dawid Makowski Date: Wed, 20 May 2020 15:08:46 +0800 Subject: [PATCH 2/2] pnpm support - documentation --- DOCUMENTATION/content/documentation/index.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index 5eae9a02..eebfd309 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -1870,6 +1870,23 @@ To install NVM and NodeJS in the Workspace container +
+ +## Install PNPM + +pnpm uses hard links and symlinks to save one version of a module only ever once on a disk. When using npm or Yarn for example, if you have 100 projects using the same version of lodash, you will have 100 copies of lodash on disk. With pnpm, lodash will be saved in a single place on the disk and a hard link will put it into the node_modules where it should be installed. + +As a result, you save gigabytes of space on your disk and you have a lot faster installations! If you'd like more details about the unique node_modules structure that pnpm creates and why it works fine with the Node.js ecosystem. +More info here: https://pnpm.js.org/en/motivation + +1 - Open the `.env` file + +2 - Search for the `WORKSPACE_INSTALL_NODE` and `WORKSPACE_INSTALL_PNPM` argument under the Workspace Container and set it to `true` + +3 - Re-build the container `docker-compose build workspace` + + +