From 3aa4ae4539ec0dd41ed51090eab8aa5284d6a254 Mon Sep 17 00:00:00 2001 From: Asher Date: Fri, 18 Dec 2020 10:59:15 -0600 Subject: [PATCH] Clarify why we need node_modules.asar --- ci/build/npm-postinstall.sh | 5 +---- ci/lib.sh | 9 +++++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ci/build/npm-postinstall.sh b/ci/build/npm-postinstall.sh index d4d30233..b12d9a86 100755 --- a/ci/build/npm-postinstall.sh +++ b/ci/build/npm-postinstall.sh @@ -42,14 +42,11 @@ vscode_yarn() { cd lib/vscode yarn --production --frozen-lockfile - # VS Code needs a node_modules.asar but that's just a duplicate of stuff we - # already have in node_modules. + # This is a copy of symlink_asar in ../lib.sh. Look there for details. if [ ! -e node_modules.asar ]; then if [ "${WINDIR-}" ]; then - # mklink takes the link name first. mklink /J node_modules.asar node_modules else - # ln takes the link name second. ln -s node_modules node_modules.asar fi fi diff --git a/ci/lib.sh b/ci/lib.sh index dae06c6d..197aff7b 100755 --- a/ci/lib.sh +++ b/ci/lib.sh @@ -95,8 +95,13 @@ export OS # Defaults to release RELEASE_PATH="${RELEASE_PATH-release}" -# Symlink node_modules.asar to node_modules. VS Code needs a node_modules.asar -# but that's just a duplicate of stuff we already have in node_modules. +# VS Code bundles some modules into an asar which is an archive format that +# works like tar. It then seems to get unpacked into node_modules.asar. +# +# I don't know why they do this but all the dependencies they bundle already +# exist in node_modules so just symlink it. We have to do this since not only VS +# Code itself but also extensions will look specifically in this directory for +# files (like the ripgrep binary or the oniguruma wasm). symlink_asar() { if [ ! -e node_modules.asar ]; then if [ "${WINDIR-}" ]; then