Skip to content

Commit ec591cd

Browse files
committed
require and loadNpmModule are part of base class
1 parent 9d74466 commit ec591cd

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

compile.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,25 @@ qx.Class.define("qxl.packagebrowser.compile.LibraryApi", {
1414

1515
members: {
1616
__pkgDataGenerated: false,
17+
require: function(module) {
18+
try {
19+
require.resolve(module);
20+
} catch (e) {
21+
if ( e.code === 'MODULE_NOT_FOUND' ) {
22+
this.loadNpmModule(module);
23+
}
24+
}
25+
return require(module);
26+
},
27+
28+
loadNpmModule: function(module) {
29+
const {execSync} = require("child_process");
30+
let s = `npm install --no-save --no-package-lock ${module}`;
31+
qx.tool.compiler.Console.info(s);
32+
execSync(s, {
33+
stdio: "inherit"
34+
});
35+
},
1736

1837
async load() {
1938
let command = this.getCompilerApi().getCommand();
@@ -41,10 +60,7 @@ qx.Class.define("qxl.packagebrowser.compile.LibraryApi", {
4160
return;
4261
}
4362

44-
let s = 'npm install --no-save --no-package-lock mkdirp';
45-
console.info(s);
46-
execSync(s);
47-
const mkdirp = require('mkdirp');
63+
const mkdirp = this.require('mkdirp');
4864

4965
const header = " Creating metadata for package browser. This will take a while. ";
5066
console.log();

0 commit comments

Comments
 (0)