host-nodejs is quite long to build (5 minutes on a very fast build machine), and will become a download dependency when we implement vendoring for NodeJS-based packages. In order to mitigate this build time, an idea is to use a pre-compiled host NodeJS. One option would be to use a pre-installed NodeJS, but we're concerned by version compatibility issues of the host NodeJS/NPM does not have the same version as the target NodeJS/NPM. So another option is to use a pre-compiled NodeJS provided by the NodeJS project itself. To achieve this, this commit turns the host-nodejs package into a virtual package. For the time being, this has just one provider: host-nodejs-src, which builds host-nodejs from source. This is the original host-nodejs package, renamed to host-nodejs-src. The target nodejs package is also renamed to nodejs-src in order to have a single package nodejs-src that has a host and target version, as usual. We do keep the nodejs target package itself, but it's an empty package - not even a virtual package. This means the following. - Its VERSION, SOURCE and SITE variables are left empty. The existing variables are renamed to NODEJS_COMMON_VERSION etc. to allow them to be reused by nodejs-src and the future nodejs-bin. - It's a generic package with a single dependency, nodejs-src. - The Config.in remains unchanged, except that it selects BR2_PACKAGE_NODEJS_SRC. - BR2_PACKAGE_NODEJS_SRC is a blind option. Co-authored-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
37 lines
1.4 KiB
Diff
37 lines
1.4 KiB
Diff
From a31425bdfcb5d695ab25c3d295898326784cffec Mon Sep 17 00:00:00 2001
|
|
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|
Date: Sun, 25 Sep 2022 11:10:06 +0200
|
|
Subject: [PATCH] lib/internal/modules/cjs/loader.js: adjust default path to
|
|
search modules
|
|
|
|
NPM installs modules in /usr/lib/node_modules/, but by default NodeJS
|
|
searches for them only in /usr/lib/node/. We could also set the
|
|
NODE_PATH environment variable, but it is more convienient to have
|
|
NodeJS configured by default to find modules where they are installed.
|
|
|
|
This issue is discussed at
|
|
https://stackoverflow.com/questions/15636367/nodejs-require-a-global-module-package.
|
|
|
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|
---
|
|
lib/internal/modules/cjs/loader.js | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js
|
|
index f1971c40a4..5fe3884156 100644
|
|
--- a/lib/internal/modules/cjs/loader.js
|
|
+++ b/lib/internal/modules/cjs/loader.js
|
|
@@ -1261,7 +1261,8 @@ Module._initPaths = function() {
|
|
path.resolve(process.execPath, '..') :
|
|
path.resolve(process.execPath, '..', '..');
|
|
|
|
- const paths = [path.resolve(prefixDir, 'lib', 'node')];
|
|
+ const paths = [path.resolve(prefixDir, 'lib', 'node'),
|
|
+ path.resolve(prefixDir, 'lib', 'node_modules')];
|
|
|
|
if (homeDir) {
|
|
ArrayPrototypeUnshift(paths, path.resolve(homeDir, '.node_libraries'));
|
|
--
|
|
2.37.3
|
|
|