mirror of
https://github.com/coder/code-server.git
synced 2024-12-04 12:30:15 +03:00
eae5d8c807
These conflicts will be resolved in the following commits. We do it this way so that PR review is possible.
109 lines
3.6 KiB
JavaScript
109 lines
3.6 KiB
JavaScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
const cp = require('child_process');
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
const { dirs } = require('./dirs');
|
|
const yarn = process.platform === 'win32' ? 'yarn.cmd' : 'yarn';
|
|
|
|
/**
|
|
* @param {string} location
|
|
* @param {*} [opts]
|
|
*/
|
|
function yarnInstall(location, opts) {
|
|
opts = opts || { env: process.env };
|
|
opts.cwd = location;
|
|
opts.stdio = 'inherit';
|
|
|
|
const raw = process.env['npm_config_argv'] || '{}';
|
|
const argv = JSON.parse(raw);
|
|
const original = argv.original || [];
|
|
const args = original.filter(arg => arg === '--ignore-optional' || arg === '--frozen-lockfile');
|
|
if (opts.ignoreEngines) {
|
|
args.push('--ignore-engines');
|
|
delete opts.ignoreEngines;
|
|
}
|
|
|
|
console.log(`Installing dependencies in ${location}...`);
|
|
console.log(`$ yarn ${args.join(' ')}`);
|
|
const result = cp.spawnSync(yarn, args, opts);
|
|
|
|
if (result.error || result.status !== 0) {
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
for (let dir of dirs) {
|
|
|
|
<<<<<<< HEAD
|
|
// NOTE@coder: Skip these dependencies since we don't use them.
|
|
// if (!(process.platform === 'win32' && (process.arch === 'arm64' || process.env['npm_config_arch'] === 'arm64'))) {
|
|
// yarnInstall('remote'); // node modules used by vscode server
|
|
// yarnInstall('remote/web'); // node modules used by vscode web
|
|
// }
|
|
=======
|
|
if (dir === '') {
|
|
// `yarn` already executed in root
|
|
continue;
|
|
}
|
|
|
|
if (/^remote/.test(dir) && process.platform === 'win32' && (process.arch === 'arm64' || process.env['npm_config_arch'] === 'arm64')) {
|
|
// windows arm: do not execute `yarn` on remote folder
|
|
continue;
|
|
}
|
|
>>>>>>> 89b6e0164fa770333755b11504e19a4232b1a2d4
|
|
|
|
if (dir === 'build/lib/watch') {
|
|
// node modules for watching, specific to host node version, not electron
|
|
yarnInstallBuildDependencies();
|
|
continue;
|
|
}
|
|
|
|
let opts;
|
|
|
|
if (dir === 'remote') {
|
|
// node modules used by vscode server
|
|
const env = { ...process.env };
|
|
if (process.env['VSCODE_REMOTE_CC']) { env['CC'] = process.env['VSCODE_REMOTE_CC']; }
|
|
if (process.env['VSCODE_REMOTE_CXX']) { env['CXX'] = process.env['VSCODE_REMOTE_CXX']; }
|
|
if (process.env['VSCODE_REMOTE_NODE_GYP']) { env['npm_config_node_gyp'] = process.env['VSCODE_REMOTE_NODE_GYP']; }
|
|
opts = { env };
|
|
} else if (/^extensions\//.test(dir)) {
|
|
opts = { ignoreEngines: true };
|
|
}
|
|
|
|
yarnInstall(dir, opts);
|
|
}
|
|
|
|
function yarnInstallBuildDependencies() {
|
|
// make sure we install the deps of build/lib/watch for the system installed
|
|
// node, since that is the driver of gulp
|
|
const watchPath = path.join(path.dirname(__dirname), 'lib', 'watch');
|
|
const yarnrcPath = path.join(watchPath, '.yarnrc');
|
|
|
|
const disturl = 'https://nodejs.org/download/release';
|
|
const target = process.versions.node;
|
|
const runtime = 'node';
|
|
|
|
const yarnrc = `disturl "${disturl}"
|
|
target "${target}"
|
|
runtime "${runtime}"`;
|
|
|
|
fs.writeFileSync(yarnrcPath, yarnrc, 'utf8');
|
|
yarnInstall(watchPath);
|
|
}
|
|
|
|
<<<<<<< HEAD
|
|
yarnInstall(`build`); // node modules required for build
|
|
// yarnInstall('test/automation'); // node modules required for smoketest
|
|
// yarnInstall('test/smoke'); // node modules required for smoketest
|
|
// yarnInstall('test/integration/browser'); // node modules required for integration
|
|
yarnInstallBuildDependencies(); // node modules for watching, specific to host node version, not electron
|
|
|
|
=======
|
|
>>>>>>> 89b6e0164fa770333755b11504e19a4232b1a2d4
|
|
cp.execSync('git config pull.rebase true');
|