Use Volta to manage Node and Yarn version

This commit is contained in:
Felipe Santos
2023-02-11 12:15:53 -03:00
parent 163679c650
commit 7e511177ad
9 changed files with 104 additions and 73 deletions
+8 -9
View File
@@ -1,10 +1,9 @@
FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-16
FROM mcr.microsoft.com/devcontainers/base:ubuntu-22.04
# Install Docker
ENV DOCKER_BUILDKIT="1"
# https://github.com/microsoft/vscode-dev-containers/commits/main/script-library/docker-debian.sh
ARG DOCKER_SCRIPT_VERSION="364972b0d7d20ee5de40c1084e65f3f1bc6d5951"
RUN bash -c "$(curl -fsSL "https://raw.githubusercontent.com/microsoft/vscode-dev-containers/${DOCKER_SCRIPT_VERSION}/script-library/docker-debian.sh")" \
&& rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["/usr/local/share/docker-init.sh"]
CMD ["sleep", "infinity"]
USER vscode
# Install Volta
ARG HOME="/home/vscode"
ENV VOLTA_HOME="${HOME}/.volta"
ENV PATH="${VOLTA_HOME}/bin:${PATH}"
RUN bash -c "$(curl -fsSL https://get.volta.sh)" -- --skip-setup
+35 -25
View File
@@ -2,8 +2,15 @@
{
"dockerComposeFile": "../docker-compose.yml",
"service": "dev",
"features": {
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {
"moby": false,
"dockerDashComposeVersion": "v2"
}
},
"workspaceFolder": "${localWorkspaceFolder}",
"shutdownAction": "stopCompose",
"forwardPorts": [10001, "hass:8123", "frigate:5000"],
"portsAttributes": {
"10001": {
"label": "Rollup",
@@ -18,33 +25,36 @@
"onAutoForward": "silent"
}
},
"forwardPorts": [10001, "hass:8123", "frigate:5000"],
"initializeCommand": ".devcontainer/initialize.sh",
"postCreateCommand": "yarn install",
"extensions": [
"github.vscode-pull-request-github",
"eamodio.gitlens",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"bierner.lit-html",
"runem.lit-plugin",
"davidanson.vscode-markdownlint",
"redhat.vscode-yaml",
"lokalise.i18n-ally",
"ms-azuretools.vscode-docker"
],
"settings": {
"files.eol": "\n",
"editor.tabSize": 2,
"editor.formatOnPaste": false,
"editor.formatOnSave": true,
"editor.formatOnType": true,
"files.trimTrailingWhitespace": true,
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
"customizations": {
"vscode": {
"extensions": [
"github.vscode-pull-request-github",
"eamodio.gitlens",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"bierner.lit-html",
"runem.lit-plugin",
"davidanson.vscode-markdownlint",
"redhat.vscode-yaml",
"lokalise.i18n-ally",
"ms-azuretools.vscode-docker"
],
"settings": {
"files.eol": "\n",
"editor.tabSize": 2,
"editor.formatOnPaste": false,
"editor.formatOnSave": true,
"editor.formatOnType": true,
"files.trimTrailingWhitespace": true,
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
}
}
}
+6 -1
View File
@@ -16,7 +16,12 @@ jobs:
name: Test build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node and Yarn
uses: volta-cli/action@v3
- name: Build
run: |
yarn install
+5 -1
View File
@@ -11,7 +11,11 @@ jobs:
name: Prepare release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node and Yarn
uses: volta-cli/action@v3
# Build
- name: Build the file
+10 -2
View File
@@ -2,9 +2,17 @@
/.rpt2_cache/
package-lock.json
/dist
/.yarn/
.env
.envrc
stats.html
stats.html
# https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
+1
View File
@@ -0,0 +1 @@
nodeLinker: node-modules
+3 -2
View File
@@ -1,10 +1,11 @@
---
version: '3'
services:
dev:
user: node
user: vscode
init: true
build: .devcontainer
entrypoint: /usr/local/share/docker-init.sh
command: sleep infinity
env_file:
- .env
volumes:
+4 -1
View File
@@ -74,12 +74,15 @@
"ts-prune": "^0.10.3",
"typescript": "^4.9.5"
},
"packageManager": "yarn@3.4.1",
"scripts": {
"start": "rollup -c --watch",
"build": "yarn run lint && yarn run rollup",
"lint": "eslint 'src/**/*.ts'",
"rollup": "rollup -c",
"prune": "ts-prune"
},
"volta": {
"node": "18.14.0",
"yarn": "3.4.1"
}
}
+32 -32
View File
@@ -859,9 +859,9 @@ __metadata:
linkType: hard
"@types/node@npm:*":
version: 18.11.19
resolution: "@types/node@npm:18.11.19"
checksum: d7cd19fcfc59cbdd3f9ba0b4072cb7adc21bd575bd8eb7d7e698975e63564aaa83f03434f32b12331f84f73d0b369d9cbe2371e359d9d7f5c3361f4987f4f7da
version: 18.13.0
resolution: "@types/node@npm:18.13.0"
checksum: 4ea10f8802848b01672bce938f678b6774ca2cee0c9774f12275ab064ae07818419c3e2e41d6257ce7ba846d1ea26c63214aa1dfa4166fa3746291752b8c6416
languageName: node
linkType: hard
@@ -1326,9 +1326,9 @@ __metadata:
linkType: hard
"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001449":
version: 1.0.30001450
resolution: "caniuse-lite@npm:1.0.30001450"
checksum: 511b360bfc907b2e437699364cf96b83507bc45043926450056642332bcd6f65a1e72540c828534ae15e0ac906e3e9af46cb2bb84458dd580bc31478e9dce282
version: 1.0.30001451
resolution: "caniuse-lite@npm:1.0.30001451"
checksum: 48a06a7881093bb4d8a08ed5428f24a1cbdaa544b0a6f0c3614287d4f34b6c853e79a0f608a5bd901c27995f5e951825606fba11e7930251cc422bd61de9d849
languageName: node
linkType: hard
@@ -1752,12 +1752,12 @@ __metadata:
linkType: hard
"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4":
version: 1.1.4
resolution: "define-properties@npm:1.1.4"
version: 1.2.0
resolution: "define-properties@npm:1.2.0"
dependencies:
has-property-descriptors: ^1.0.0
object-keys: ^1.1.1
checksum: ce0aef3f9eb193562b5cfb79b2d2c86b6a109dfc9fdcb5f45d680631a1a908c06824ddcdb72b7573b54e26ace07f0a23420aaba0d5c627b34d2c1de8ef527e2b
checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6
languageName: node
linkType: hard
@@ -1841,9 +1841,9 @@ __metadata:
linkType: hard
"electron-to-chromium@npm:^1.4.284":
version: 1.4.288
resolution: "electron-to-chromium@npm:1.4.288"
checksum: 312e1210f62c6bb593d1f57a15a1c64729e6a5edeacecc5d28dfb21f1a78ed3fac11805a0749a4e68f1fe1536229bf9d7bca36e1f34303369248a749a78aec1f
version: 1.4.295
resolution: "electron-to-chromium@npm:1.4.295"
checksum: 66fff1341d3c94c2ccd1f2a39cffdb92118304f4b949d3194427e7022d6a6bd8c482b5c4afd9dce210117ba20cac01c1a1466089f5a862fe9c563113b86ff829
languageName: node
linkType: hard
@@ -2146,8 +2146,8 @@ __metadata:
linkType: hard
"eslint@npm:^8.23.0":
version: 8.33.0
resolution: "eslint@npm:8.33.0"
version: 8.34.0
resolution: "eslint@npm:8.34.0"
dependencies:
"@eslint/eslintrc": ^1.4.1
"@humanwhocodes/config-array": ^0.11.8
@@ -2190,7 +2190,7 @@ __metadata:
text-table: ^0.2.0
bin:
eslint: bin/eslint.js
checksum: 727e63ab8b7acf281442323c5971f6afdd5b656fbcebc4476cf54e35af51b2f180617433fc5e1952f0449ca3f43a905527f9407ea4b8a7ea7562fc9c3f278d4c
checksum: 4e13e9eb05ac2248efbb6acae0b2325091235d5c47ba91a4775c7d6760778cbcd358a773ebd42f4629d2ad89e27c02f5d66eb1f737d75d9f5fc411454f83b2e5
languageName: node
linkType: hard
@@ -2562,7 +2562,7 @@ __metadata:
languageName: node
linkType: hard
"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3":
"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0":
version: 1.2.0
resolution: "get-intrinsic@npm:1.2.0"
dependencies:
@@ -2891,13 +2891,13 @@ __metadata:
linkType: hard
"internal-slot@npm:^1.0.4":
version: 1.0.4
resolution: "internal-slot@npm:1.0.4"
version: 1.0.5
resolution: "internal-slot@npm:1.0.5"
dependencies:
get-intrinsic: ^1.1.3
get-intrinsic: ^1.2.0
has: ^1.0.3
side-channel: ^1.0.4
checksum: 8974588d06bab4f675573a3b52975370facf6486df51bc0567a982c7024fa29495f10b76c0d4dc742dd951d1b72024fdc1e31bb0bedf1678dc7aacacaf5a4f73
checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a
languageName: node
linkType: hard
@@ -3524,9 +3524,9 @@ __metadata:
linkType: hard
"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
version: 1.2.7
resolution: "minimist@npm:1.2.7"
checksum: 7346574a1038ca23c32e02252f603801f09384dd1d78b69a943a4e8c2c28730b80e96193882d3d3b22a063445f460e48316b29b8a25addca2d7e5e8f75478bec
version: 1.2.8
resolution: "minimist@npm:1.2.8"
checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0
languageName: node
linkType: hard
@@ -3591,9 +3591,9 @@ __metadata:
linkType: hard
"minipass@npm:^4.0.0":
version: 4.0.2
resolution: "minipass@npm:4.0.2"
checksum: 2e4f4caaf85a45c01c6042adc43b5111a6113f62e300acf1db3b193ac3ec6e955bc893d6d8a08635598771a55a0f60487dcac59a1ac39557eb524295d4778c9e
version: 4.0.3
resolution: "minipass@npm:4.0.3"
checksum: a09f405e2f380ae7f6ee0cbb53b45c1fcc1b6c70fc3896f4d20649d92a10e61892c57bd9960a64cedf6c90b50022cb6c195905b515039c335b423202f99e6f18
languageName: node
linkType: hard
@@ -3798,13 +3798,13 @@ __metadata:
linkType: hard
"open@npm:^8.4.0":
version: 8.4.0
resolution: "open@npm:8.4.0"
version: 8.4.1
resolution: "open@npm:8.4.1"
dependencies:
define-lazy-prop: ^2.0.0
is-docker: ^2.1.1
is-wsl: ^2.2.0
checksum: e9545bec64cdbf30a0c35c1bdc310344adf8428a117f7d8df3c0af0a0a24c513b304916a6d9b11db0190ff7225c2d578885080b761ed46a3d5f6f1eebb98b63c
checksum: dbe8e1d98889df60b5179eab8b94b9591744d1f0033bce1a9a10738ba140bd9d625d6bcde7ff9f043e379aafb918975c2daa03b87cef13eb046ac18ed807f06d
languageName: node
linkType: hard
@@ -4389,11 +4389,11 @@ __metadata:
linkType: hard
"prettier@npm:^2.6.0":
version: 2.8.3
resolution: "prettier@npm:2.8.3"
version: 2.8.4
resolution: "prettier@npm:2.8.4"
bin:
prettier: bin-prettier.js
checksum: 92f2ceb522d454370e02082aa74ad27388672f7cee8975028b59517c069fe643bdc73e322675c8faf2ff173d7a626d1a6389f26b474000308e793aa25fff46e5
checksum: c173064bf3df57b6d93d19aa98753b9b9dd7657212e33b41ada8e2e9f9884066bb9ca0b4005b89b3ab137efffdf8fbe0b462785aba20364798ff4303aadda57e
languageName: node
linkType: hard