parent
98338e9a44
commit
121a520447
1
.gitignore
vendored
1
.gitignore
vendored
@ -9,6 +9,7 @@ release-packages/
|
|||||||
release-gcp/
|
release-gcp/
|
||||||
release-images/
|
release-images/
|
||||||
node_modules
|
node_modules
|
||||||
|
node_modules.asar
|
||||||
node-*
|
node-*
|
||||||
/plugins
|
/plugins
|
||||||
/lib/coder-cloud-agent
|
/lib/coder-cloud-agent
|
||||||
|
@ -96,6 +96,10 @@ EOF
|
|||||||
# yarn to fetch node_modules if necessary without build scripts running.
|
# yarn to fetch node_modules if necessary without build scripts running.
|
||||||
# We cannot use --no-scripts because we still want dependent package scripts to run.
|
# We cannot use --no-scripts because we still want dependent package scripts to run.
|
||||||
jq 'del(.scripts)' < "$VSCODE_SRC_PATH/package.json" > "$VSCODE_OUT_PATH/package.json"
|
jq 'del(.scripts)' < "$VSCODE_SRC_PATH/package.json" > "$VSCODE_OUT_PATH/package.json"
|
||||||
|
|
||||||
|
pushd "$VSCODE_OUT_PATH"
|
||||||
|
symlink_asar
|
||||||
|
popd
|
||||||
}
|
}
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
|
@ -41,6 +41,19 @@ main() {
|
|||||||
vscode_yarn() {
|
vscode_yarn() {
|
||||||
cd lib/vscode
|
cd lib/vscode
|
||||||
yarn --production --frozen-lockfile
|
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.
|
||||||
|
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
|
||||||
|
|
||||||
cd extensions
|
cd extensions
|
||||||
yarn --production --frozen-lockfile
|
yarn --production --frozen-lockfile
|
||||||
for ext in */; do
|
for ext in */; do
|
||||||
|
14
ci/dev/postinstall.sh
Executable file
14
ci/dev/postinstall.sh
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
main() {
|
||||||
|
cd "$(dirname "$0")/../.."
|
||||||
|
source ./ci/lib.sh
|
||||||
|
|
||||||
|
cd lib/vscode
|
||||||
|
yarn ${CI+--frozen-lockfile}
|
||||||
|
|
||||||
|
symlink_asar
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
15
ci/lib.sh
15
ci/lib.sh
@ -1,4 +1,5 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
pushd() {
|
pushd() {
|
||||||
builtin pushd "$@" > /dev/null
|
builtin pushd "$@" > /dev/null
|
||||||
@ -93,3 +94,17 @@ export OS
|
|||||||
# RELEASE_PATH is the destination directory for the release from the root.
|
# RELEASE_PATH is the destination directory for the release from the root.
|
||||||
# Defaults to release
|
# Defaults to release
|
||||||
RELEASE_PATH="${RELEASE_PATH-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.
|
||||||
|
symlink_asar() {
|
||||||
|
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
|
||||||
|
}
|
||||||
|
@ -58,13 +58,12 @@ const args = minimist(process.argv.slice(2), {
|
|||||||
const Module = require.__$__nodeRequire('module') as any;
|
const Module = require.__$__nodeRequire('module') as any;
|
||||||
const originalLoad = Module._load;
|
const originalLoad = Module._load;
|
||||||
|
|
||||||
Module._load = function (request: string, parent: object, isMain: boolean) {
|
Module._load = function (request: string) {
|
||||||
if (request === 'natives') {
|
if (request === 'natives') {
|
||||||
throw new Error('Either the extension or a NPM dependency is using the "natives" node module which is unsupported as it can cause a crash of the extension host. Click [here](https://go.microsoft.com/fwlink/?linkid=871887) to find out more');
|
throw new Error('Either the extension or a NPM dependency is using the "natives" node module which is unsupported as it can cause a crash of the extension host. Click [here](https://go.microsoft.com/fwlink/?linkid=871887) to find out more');
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE@coder: Map node_module.asar requests to regular node_modules.
|
return originalLoad.apply(this, arguments);
|
||||||
return originalLoad.apply(this, [request.replace(/node_modules\.asar(\.unpacked)?/, 'node_modules'), parent, isMain]);
|
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
"release:github-assets": "./ci/build/release-github-assets.sh",
|
"release:github-assets": "./ci/build/release-github-assets.sh",
|
||||||
"test:standalone-release": "./ci/build/test-standalone-release.sh",
|
"test:standalone-release": "./ci/build/test-standalone-release.sh",
|
||||||
"package": "./ci/build/build-packages.sh",
|
"package": "./ci/build/build-packages.sh",
|
||||||
"postinstall": "cd lib/vscode && yarn ${CI+--frozen-lockfile}",
|
"postinstall": "./ci/dev/postinstall.sh",
|
||||||
"_____": "",
|
"_____": "",
|
||||||
"fmt": "./ci/dev/fmt.sh",
|
"fmt": "./ci/dev/fmt.sh",
|
||||||
"lint": "./ci/dev/lint.sh",
|
"lint": "./ci/dev/lint.sh",
|
||||||
|
Reference in New Issue
Block a user