core: node版本需求降至node10.4

This commit is contained in:
undefined committed 2021-08-01 16:21:56 +08:00
1 parent 26a381ce3f
commit 289b4da1fe
3 files changed
+19 -5

No files matched your search

+12 -2
View File
@@ -10,7 +10,11 @@ const argv = require('cac')().parse();
const child = require('child_process'); const child = require('child_process');
const esbuild = require('esbuild'); const esbuild = require('esbuild');
const major = +process.version.split('.')[0].split('v')[1];
const minor = +process.version.split('.')[1];
let transformTimeUsage = 0; let transformTimeUsage = 0;
let transformCount = 0;
let displayTimeout; let displayTimeout;
function transform(type, filename) { function transform(type, filename) {
const start = new Date(); const start = new Date();
@@ -19,16 +23,22 @@ function transform(type, filename) {
sourcemap: 'inline', sourcemap: 'inline',
platform: 'node', platform: 'node',
format: 'cjs', format: 'cjs',
target: `node${process.version.split('.')[0].split('v')[1]}`, target: `node${major}.${minor}`,
jsx: 'transform', jsx: 'transform',
write: false, write: false,
}); });
if (result.warnings.length) console.warn(result.warnings); if (result.warnings.length) console.warn(result.warnings);
transformTimeUsage += new Date().getTime() - start.getTime(); transformTimeUsage += new Date().getTime() - start.getTime();
transformCount++;
if (displayTimeout) clearTimeout(displayTimeout); if (displayTimeout) clearTimeout(displayTimeout);
displayTimeout = setTimeout(() => console.log(`Code transform took ${transformTimeUsage}ms`), 1000); displayTimeout = setTimeout(() => console.log(`Transformed ${transformCount} files. (${transformTimeUsage}ms)`), 1000);
return result.outputFiles[0].text; return result.outputFiles[0].text;
} }
if (major < 14) {
require.extensions['.js'] = function loader(module, filename) {
return module._compile(transform('js', filename), filename);
};
}
require.extensions['.ts'] = function loader(module, filename) { require.extensions['.ts'] = function loader(module, filename) {
return module._compile(transform('ts', filename), filename); return module._compile(transform('ts', filename), filename);
}; };
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "hydrooj", "name": "hydrooj",
"version": "2.30.8", "version": "2.30.9",
"bin": "bin/hydrooj.js", "bin": "bin/hydrooj.js",
"main": "src/loader", "main": "src/loader",
"module": "src/loader", "module": "src/loader",
+6 -2
View File
@@ -1,6 +1,10 @@
const versionNum = +process.version.replace(/v/gim, '').split('.')[0]; import cluster from 'cluster';
if (versionNum < 14) throw new Error('NodeJS >=v14 required');
const versionNum = +process.version.replace(/v/gim, '').split('.')[0];
if (versionNum < 10) throw new Error('NodeJS >=10.4 required');
else if (versionNum < 14 && cluster.isMaster) {
console.warn('NodeJS version <14, startup performance will be impacted.');
}
if (!global.Hydro) { if (!global.Hydro) {
global.Hydro = { global.Hydro = {
version: { version: {