diff --git a/ci/build/npm-postinstall.sh b/ci/build/npm-postinstall.sh index d4d30233cdc9c7102ccfc799d1b28d841571368c..b12d9a864d098c9fb052c81d32326a4506c5c434 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 dae06c6d93cfea11b67ca5283175f493fcee48dd..197aff7b4b39d12665b04fbcd08e53b894259121 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