Skip to content

Commit c4bf22f

Browse files
committed
1 parent e93f74b commit c4bf22f

2 files changed

Lines changed: 52 additions & 0 deletions

File tree

src/cli.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,28 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6+
//#region Add support for using node_modules.asar
7+
(function () {
8+
const path = require('path');
9+
const Module = require('module');
10+
const NODE_MODULES_PATH = path.join(__dirname, '../node_modules');
11+
const NODE_MODULES_ASAR_PATH = NODE_MODULES_PATH + '.asar';
12+
13+
const originalResolveLookupPaths = Module._resolveLookupPaths;
14+
Module._resolveLookupPaths = function (request, parent) {
15+
const result = originalResolveLookupPaths(request, parent);
16+
17+
const paths = result[1];
18+
for (let i = 0, len = paths.length; i < len; i++) {
19+
if (paths[i] === NODE_MODULES_PATH) {
20+
paths.splice(i, 0, NODE_MODULES_ASAR_PATH);
21+
break;
22+
}
23+
}
24+
25+
return result;
26+
};
27+
})();
28+
//#endregion
29+
630
require('./bootstrap-amd').bootstrap('vs/code/node/cli');

src/vs/code/electron-browser/issue/issueReporter.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,34 @@ function main() {
5353
const args = parseURLQueryArgs();
5454
const configuration = JSON.parse(args['config'] || '{}') || {};
5555

56+
//#region Add support for using node_modules.asar
57+
(function () {
58+
const path = require('path');
59+
const Module = require('module');
60+
let NODE_MODULES_PATH = path.join(configuration.appRoot, 'node_modules');
61+
if (/[a-z]\:/.test(NODE_MODULES_PATH)) {
62+
// Make drive letter uppercase
63+
NODE_MODULES_PATH = NODE_MODULES_PATH.charAt(0).toUpperCase() + NODE_MODULES_PATH.substr(1);
64+
}
65+
const NODE_MODULES_ASAR_PATH = NODE_MODULES_PATH + '.asar';
66+
67+
const originalResolveLookupPaths = Module._resolveLookupPaths;
68+
Module._resolveLookupPaths = function (request, parent) {
69+
const result = originalResolveLookupPaths(request, parent);
70+
71+
const paths = result[1];
72+
for (let i = 0, len = paths.length; i < len; i++) {
73+
if (paths[i] === NODE_MODULES_PATH) {
74+
paths.splice(i, 0, NODE_MODULES_ASAR_PATH);
75+
break;
76+
}
77+
}
78+
79+
return result;
80+
};
81+
})();
82+
//#endregion
83+
5684
const extractKey = function (e) {
5785
return [
5886
e.ctrlKey ? 'ctrl-' : '',

0 commit comments

Comments
 (0)