diff --git a/README.md b/README.md index 135258e007f819efd7b668a581fc2f9f1c1dd175..afb42f6f6dbdf2b866d09efecd3c3e2f5c0d74ac 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,8 @@ platform or architecture. **note:** Installing via `npm` requires certain dependencies for the native module builds. See [./doc/npm.md](./doc/npm.md) for installing these dependencies. +You also need at least node v12 installed. See [#1633](https://github.com/cdr/code-server/issues/1633). + ```bash npm install -g code-server code-server diff --git a/ci/build/npm-postinstall.sh b/ci/build/npm-postinstall.sh index 171ce8245e37592f6514cfb69a23c57bf079039f..daca99d250cd12a711b7991d4a5b63559230a4a8 100755 --- a/ci/build/npm-postinstall.sh +++ b/ci/build/npm-postinstall.sh @@ -2,6 +2,16 @@ set -eu main() { + # Grabs the major version of node from $npm_config_user_agent which looks like + # yarn/1.21.1 npm/? node/v14.2.0 darwin x64 + major_node_version=$(echo "$npm_config_user_agent" | sed -n 's/.*node\/v\([^.]*\).*/\1/p') + if [ "$major_node_version" -lt 12 ]; then + echo "code-server currently requires at least node v12" + echo "We have detected that you are on node v$major_node_version" + echo "See https://github.com/cdr/code-server/issues/1633" + exit 1 + fi + case "${npm_config_user_agent-}" in npm*) # We are running under npm. if [ "${npm_config_unsafe_perm-}" != "true" ]; then diff --git a/ci/steps/publish-npm.sh b/ci/steps/publish-npm.sh index 10865a6130d2b4899caafcd28e21b18b466d4624..be6161bf5c154276dc1846c76eb8d2c547188cec 100755 --- a/ci/steps/publish-npm.sh +++ b/ci/steps/publish-npm.sh @@ -11,7 +11,7 @@ main() { download_artifact npm-package ./release # https://github.com/actions/upload-artifact/issues/38 - chmod +x $(grep -rl '^#!/.\+' release) + chmod +x $(grep -rl '^#!/.*' release) yarn publish --non-interactive release } diff --git a/ci/steps/release-static.sh b/ci/steps/release-static.sh index cd2514e77472f806664c6bcf82f6335c91bcb3c0..08a4a1fa9e6295137b1bec731ac63465d0e74310 100755 --- a/ci/steps/release-static.sh +++ b/ci/steps/release-static.sh @@ -5,7 +5,7 @@ main() { cd "$(dirname "$0")/../.." # https://github.com/actions/upload-artifact/issues/38 - chmod +x $(grep -rl '^#!/.\+' release) + chmod +x $(grep -rl '^#!/.*' release) yarn release:static yarn test:static-release diff --git a/doc/CONTRIBUTING.md b/doc/CONTRIBUTING.md index 2eeefc47a9237362f0aac7b3fc043c252e072b5e..95d47f331964d29c02695cfa9da960b5720475cd 100644 --- a/doc/CONTRIBUTING.md +++ b/doc/CONTRIBUTING.md @@ -9,7 +9,7 @@ Please refer to [VS Code's prerequisites](https://github.com/Microsoft/vscode/wi Differences: -- We are not constrained by node version +- We require at least node v12 but later versions should work - We use [fnpm](https://github.com/goreleaser/nfpm) to build .deb and .rpm packages ## Development Workflow diff --git a/doc/npm.md b/doc/npm.md index 84712f61b159433e1c093deb92e89b0ff889b552..08704c0ca448b835c7514d30c736d4fc7d42eb62 100644 --- a/doc/npm.md +++ b/doc/npm.md @@ -3,6 +3,8 @@ If you're installing the npm module you'll need certain dependencies to build the native modules used by VS Code. +You also need at least node v12 installed. See [#1633](https://github.com/cdr/code-server/issues/1633). + ## Ubuntu, Debian ```bash diff --git a/package.json b/package.json index 2b696baed70d0868f93d5705f38426dea55d291f..fbb114c93ac87db8cc6f9fa884c7436698c58fa4 100644 --- a/package.json +++ b/package.json @@ -92,5 +92,8 @@ "coder", "vscode-remote", "browser-ide" - ] + ], + "engines": { + "node": ">= 12" + } }