mirror of
https://github.com/whyour/qinglong.git
synced 2026-07-01 04:40:38 +08:00
fix: isolate task node dependencies
This commit is contained in:
@@ -1,7 +1,36 @@
|
||||
const { execSync } = require('child_process');
|
||||
const Module = require('module');
|
||||
const path = require('path');
|
||||
const client = require('./client.js');
|
||||
require(`./env.js`);
|
||||
|
||||
function preferGlobalNodeModules() {
|
||||
const { QL_NODE_GLOBAL_PATH } = process.env;
|
||||
if (!QL_NODE_GLOBAL_PATH || Module._qlGlobalPathPatched) {
|
||||
return;
|
||||
}
|
||||
|
||||
const originalResolveFilename = Module._resolveFilename;
|
||||
Module._resolveFilename = function (request, parent, isMain, options) {
|
||||
if (
|
||||
!Module.builtinModules.includes(request) &&
|
||||
!request.startsWith('node:') &&
|
||||
!request.startsWith('.') &&
|
||||
!path.isAbsolute(request)
|
||||
) {
|
||||
try {
|
||||
return originalResolveFilename.call(this, request, parent, isMain, {
|
||||
...options,
|
||||
paths: [QL_NODE_GLOBAL_PATH],
|
||||
});
|
||||
} catch (error) {}
|
||||
}
|
||||
|
||||
return originalResolveFilename.call(this, request, parent, isMain, options);
|
||||
};
|
||||
Module._qlGlobalPathPatched = true;
|
||||
}
|
||||
|
||||
function expandRange(rangeStr, max) {
|
||||
const tempRangeStr = rangeStr
|
||||
.trim()
|
||||
@@ -113,6 +142,8 @@ try {
|
||||
return;
|
||||
}
|
||||
|
||||
preferGlobalNodeModules();
|
||||
|
||||
process.on('SIGTERM', (code) => {
|
||||
process.exit(15);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user