core: loader: use esbuild-register

This commit is contained in:
undefined committed 2021-09-16 21:13:44 +08:00
1 parent f79a7eed6f
commit 1ded807088
2 files changed
+5 -38

No files matched your search

+4 -37
View File
@@ -2,50 +2,17 @@
/* eslint-disable consistent-return */
require('source-map-support').install();
require('esbuild-register/dist/node').register({
target: `node${process.version.slice(1)}`,
jsx: 'transform',
});
const os = require('os');
const path = require('path');
const fs = require('fs-extra');
const argv = require('cac')().parse();
const child = require('child_process');
const esbuild = require('esbuild');
if (!process.env.NODE_APP_INSTANCE) process.env.NODE_APP_INSTANCE = '0';
const major = +process.version.split('.')[0].split('v')[1];
const minor = +process.version.split('.')[1];
let transformTimeUsage = 0;
let transformCount = 0;
let displayTimeout;
function transform(filename) {
const start = new Date();
const result = esbuild.buildSync({
entryPoints: [filename],
sourcemap: 'inline',
platform: 'node',
format: 'cjs',
target: `node${major}.${minor}`,
jsx: 'transform',
write: false,
});
if (result.warnings.length) console.warn(result.warnings);
transformTimeUsage += new Date().getTime() - start.getTime();
transformCount++;
if (displayTimeout) clearTimeout(displayTimeout);
displayTimeout = setTimeout(() => console.log(`Transformed ${transformCount} files. (${transformTimeUsage}ms)`), 1000);
return result.outputFiles[0].text;
}
const ESM = ['p-queue', 'p-timeout'];
require.extensions['.js'] = function loader(module, filename) {
if (ESM.filter((i) => filename.includes(i)).length || major < 14) {
return module._compile(transform(filename), filename);
}
const content = fs.readFileSync(filename, 'utf-8');
return module._compile(content, filename);
};
require.extensions['.ts'] = require.extensions['.tsx'] = function loader(module, filename) {
return module._compile(transform(filename), filename);
};
function buildUrl(opts) {
let mongourl = `${opts.protocol || 'mongodb'}://`;
+1 -1
View File
@@ -18,6 +18,7 @@
"cac": "^6.7.3",
"cookies": "^0.8.0",
"detect-browser": "^5.2.0",
"esbuild-register": "^3.0.0",
"fs-extra": "^10.0.0",
"graphql": "^15.5.3",
"graphql-scalars": "^1.10.1",
@@ -40,7 +41,6 @@
"reflect-metadata": "^0.1.13",
"serialize-javascript": "^6.0.0",
"sockjs": "^0.3.21",
"source-map-support": "^0.5.20",
"superagent": "^6.1.0",
"tx2": "^1.0.4"
},