From 0ba6d669cc60757bbc7a8de10b18cc2f39549d32 Mon Sep 17 00:00:00 2001 From: Jaemin Choi <1dotolee@gmail.com> Date: Sat, 15 Oct 2022 16:25:18 +0000 Subject: [PATCH 1/9] chore: specify node version for pnpm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit npmrc에 node version 설정을 추가해 pnpm이 사용하도록 한다. https://pnpm.io/npmrc#use-node-version --- .npmrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.npmrc b/.npmrc index 3e775efb0f..52fd04c598 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,2 @@ auto-install-peers=true +use-node-version=18.11.0 From 10ed51e9c3a837342ebfd8a7655d35d347ab14d1 Mon Sep 17 00:00:00 2001 From: Jaemin Choi <1dotolee@gmail.com> Date: Sat, 15 Oct 2022 16:39:29 +0000 Subject: [PATCH 2/9] chore: force node version --- .npmrc | 1 + package.json | 3 +++ 2 files changed, 4 insertions(+) diff --git a/.npmrc b/.npmrc index 52fd04c598..3064bf82d5 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,3 @@ auto-install-peers=true use-node-version=18.11.0 +engine-strict=true diff --git a/package.json b/package.json index da427fc76d..09fbfcf700 100644 --- a/package.json +++ b/package.json @@ -16,5 +16,8 @@ "prettier-plugin-tailwindcss": "^0.1.13", "typescript": "^4.8.4", "vue-eslint-parser": "^9.1.0" + }, + "engines": { + "node": "^18.11.0" } } From 54692dd9e041015f119b3a7a83e8784816fc44b1 Mon Sep 17 00:00:00 2001 From: Jaemin Choi <1dotolee@gmail.com> Date: Sun, 16 Oct 2022 10:12:35 +0000 Subject: [PATCH 3/9] chore: install node v18 with pnpm --- .npmrc | 1 - scripts/setup.sh | 12 ++++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.npmrc b/.npmrc index 3064bf82d5..f8b3d7defa 100644 --- a/.npmrc +++ b/.npmrc @@ -1,3 +1,2 @@ auto-install-peers=true -use-node-version=18.11.0 engine-strict=true diff --git a/scripts/setup.sh b/scripts/setup.sh index 80f2379377..7788238aa8 100755 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -39,10 +39,14 @@ fi jwt_secret=$(echo -n head /dev/urandom | LC_ALL=C tr -dc A-Za-z0-9 | sha256sum) echo "JWT_SECRET=$jwt_secret" >> backend/.env -# Install pnpm -pnpm --version || sudo corepack enable -corepack prepare pnpm@7.2.1 --activate -pnpm install +# Install pnpm if not installed +pnpm --version || curl -fsSL https://get.pnpm.io/install.sh | bash - + +# Install Node.js v18 +bash -i -c 'pnpm env use --global 18' + +# Install Node.js packages +bash -i -c 'pnpm install' # Install lefthook for git hook npx lefthook install From 4bf3d6bc466bc51a2cc9e013b276b03ffbd6e4e3 Mon Sep 17 00:00:00 2001 From: Jaemin Choi <1dotolee@gmail.com> Date: Mon, 24 Oct 2022 07:34:37 +0000 Subject: [PATCH 4/9] chore: use nodejs pnpm installed automatically --- .npmrc | 2 +- package.json | 3 --- scripts/setup.sh | 3 --- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/.npmrc b/.npmrc index f8b3d7defa..70ea3f5f10 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,2 @@ auto-install-peers=true -engine-strict=true +use-node-version=18.11.0 # pnpm installs Node.js automatically diff --git a/package.json b/package.json index 09fbfcf700..da427fc76d 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,5 @@ "prettier-plugin-tailwindcss": "^0.1.13", "typescript": "^4.8.4", "vue-eslint-parser": "^9.1.0" - }, - "engines": { - "node": "^18.11.0" } } diff --git a/scripts/setup.sh b/scripts/setup.sh index 7788238aa8..b51142d858 100755 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -42,9 +42,6 @@ echo "JWT_SECRET=$jwt_secret" >> backend/.env # Install pnpm if not installed pnpm --version || curl -fsSL https://get.pnpm.io/install.sh | bash - -# Install Node.js v18 -bash -i -c 'pnpm env use --global 18' - # Install Node.js packages bash -i -c 'pnpm install' From 6ce3771e0fabcd691d13ba409bfb2dbeb20ea622 Mon Sep 17 00:00:00 2001 From: Jaemin Choi <1dotolee@gmail.com> Date: Tue, 14 Feb 2023 11:47:59 +0000 Subject: [PATCH 5/9] feat: install pnpm with devcontainer feature --- .devcontainer/devcontainer.json | 3 +++ scripts/setup.sh | 5 +---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index caa344065b..8e67999d1a 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -17,6 +17,9 @@ "Vue.volar", "Vue.vscode-typescript-vue-plugin" ], + "features": { + "ghcr.io/devcontainers-contrib/features/pnpm:2": {} + }, // Connect as non-root user (https://code.visualstudio.com/remote/advancedcontainers/add-nonroot-user) "remoteUser": "node" } diff --git a/scripts/setup.sh b/scripts/setup.sh index b51142d858..794a1d759b 100755 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -39,11 +39,8 @@ fi jwt_secret=$(echo -n head /dev/urandom | LC_ALL=C tr -dc A-Za-z0-9 | sha256sum) echo "JWT_SECRET=$jwt_secret" >> backend/.env -# Install pnpm if not installed -pnpm --version || curl -fsSL https://get.pnpm.io/install.sh | bash - - # Install Node.js packages -bash -i -c 'pnpm install' +pnpm install # Install lefthook for git hook npx lefthook install From 9f6a33cf5b309e4e73ae622716f7ec7b50a52e19 Mon Sep 17 00:00:00 2001 From: Jaemin Choi <1dotolee@gmail.com> Date: Tue, 14 Feb 2023 12:14:23 +0000 Subject: [PATCH 6/9] feat: use nvmrc to specify node version --- .npmrc | 1 - .nvmrc | 1 + scripts/setup.sh | 8 +++++++- 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 .nvmrc diff --git a/.npmrc b/.npmrc index 70ea3f5f10..3e775efb0f 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1 @@ auto-install-peers=true -use-node-version=18.11.0 # pnpm installs Node.js automatically diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000000..9dfef47219 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v18.12.0 diff --git a/scripts/setup.sh b/scripts/setup.sh index 794a1d759b..00b6f9d087 100755 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -1,5 +1,8 @@ #!/usr/bin/env bash +# [REQUIREMENTS] +# Need to install: docker, nvm, pnpm + set -ex BASEDIR=$(dirname $(dirname $(realpath $0))) @@ -33,12 +36,15 @@ echo "NODEMAILER_PASS=\"\"" >> backend/.env # Use docker-compose profile if [ -z $DEVCONTAINER ] then - docker-compose up -d + docker compose up -d fi jwt_secret=$(echo -n head /dev/urandom | LC_ALL=C tr -dc A-Za-z0-9 | sha256sum) echo "JWT_SECRET=$jwt_secret" >> backend/.env +# Install Node.js +bash -i -c 'nvm install' + # Install Node.js packages pnpm install From 6c5d9202ad424fecd54629e61d33098d07a9bcb8 Mon Sep 17 00:00:00 2001 From: Jaemin Choi <1dotolee@gmail.com> Date: Tue, 14 Feb 2023 12:14:59 +0000 Subject: [PATCH 7/9] chore: upgrade nodejs to latest --- .nvmrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.nvmrc b/.nvmrc index 9dfef47219..49991d30ce 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v18.12.0 +v18.14.0 From 82142f19c4ca1a924bbaf83ef38ff700078024b0 Mon Sep 17 00:00:00 2001 From: Jaemin Choi <1dotolee@gmail.com> Date: Tue, 14 Feb 2023 12:51:44 +0000 Subject: [PATCH 8/9] fix: persist node version on gitpod --- .gitpod.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitpod.yml b/.gitpod.yml index 01625e0392..40a5b1de6f 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -9,6 +9,7 @@ ports: tasks: - name: Node.js init: ./scripts/setup.sh + command: nvm use vscode: extensions: From eef7fbd47d4239966853d5c675d21c690b2415c8 Mon Sep 17 00:00:00 2001 From: Jaemin Choi <1dotolee@gmail.com> Date: Tue, 14 Feb 2023 12:59:42 +0000 Subject: [PATCH 9/9] fix: install node matching version on gitpod MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gitpod workspace 재실행 시 task는 init을 건너뛰고 command만 실행된다. init의 setup.sh가 실행되지 않아 nvm install이 되지 않았다는 에러가 발생한다. command에서 nvm use 대신 nvm install로 맞는 버전의 node를 설치한다. --- .gitpod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitpod.yml b/.gitpod.yml index 40a5b1de6f..5639c37f97 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -9,7 +9,7 @@ ports: tasks: - name: Node.js init: ./scripts/setup.sh - command: nvm use + command: nvm install vscode: extensions: