All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Romain Naour <romain.naour@smile.fr>
Cc: Martin Bark <martin@barkynet.com>,
	Daniel Price <daniel.price@gmail.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH v2 1/2] package/nodejs: add patch to adjust default NodeJS search path
Date: Sat, 11 Feb 2023 00:18:16 +0100	[thread overview]
Message-ID: <20230210231816.GB2796@scaer> (raw)
In-Reply-To: <eaaa6d53-ad35-8cf8-7823-0874b268fa88@smile.fr>

Thomas, All,

On 2023-02-08 14:51 +0100, Romain Naour spake thusly:
> Le 25/09/2022 à 21:20, Thomas Petazzoni a écrit :
> > By default, NodeJS searches global modules in /usr/lib/node, but NPM
> > installs them in /usr/lib/node_modules/. Therefore by default, if one
> > installs modules with BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL, they are
> > not accessible by NodeJS, unless by passing a
> > NODE_PATH=/usr/lib/node_modules/ variable. Since this is not obvious,
> > and it's nicer when things work out of the box, we simply patch NodeJS
> > to look for modules at the right place.
> > 
> > See
> > https://stackoverflow.com/questions/15636367/nodejs-require-a-global-module-package
> > for some discussions on this topic.
> 
> Note: The nodejs package has been update to 16.18.1 since your v2 of nodejs series.
> 
> Reviewed-by: Romain Naour <romain.naour@smile.fr>

I could not find the original patch in my mailbox, so I'll reply here:

Applied to master, thanks.

Regards,
Yann E. MORIN.

> Best regards,
> Romain
> 
> 
> > 
> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> > ---
> > Changes since v1:
> > - Search for both /usr/lib/node and /usr/lib/node_modules as suggested
> >   by Yann
> > ---
> >  ...ules-cjs-loader.js-adjust-default-pa.patch | 36 +++++++++++++++++++
> >  1 file changed, 36 insertions(+)
> >  create mode 100644 package/nodejs/0004-lib-internal-modules-cjs-loader.js-adjust-default-pa.patch
> > 
> > diff --git a/package/nodejs/0004-lib-internal-modules-cjs-loader.js-adjust-default-pa.patch b/package/nodejs/0004-lib-internal-modules-cjs-loader.js-adjust-default-pa.patch
> > new file mode 100644
> > index 0000000000..5b93998e5e
> > --- /dev/null
> > +++ b/package/nodejs/0004-lib-internal-modules-cjs-loader.js-adjust-default-pa.patch
> > @@ -0,0 +1,36 @@
> > +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
> > +
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

      reply	other threads:[~2023-02-10 23:18 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-25 19:20 [Buildroot] [PATCH v2 1/2] package/nodejs: add patch to adjust default NodeJS search path Thomas Petazzoni
2022-09-25 19:20 ` [Buildroot] [PATCH v2 2/2] support/testing/tests: add NodeJS tests Thomas Petazzoni
2023-02-08 15:43   ` Romain Naour
2023-02-10 23:18     ` Yann E. MORIN
2023-02-08 13:51 ` [Buildroot] [PATCH v2 1/2] package/nodejs: add patch to adjust default NodeJS search path Romain Naour
2023-02-10 23:18   ` Yann E. MORIN [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230210231816.GB2796@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@buildroot.org \
    --cc=daniel.price@gmail.com \
    --cc=martin@barkynet.com \
    --cc=romain.naour@smile.fr \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.