[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#51838] [PATCH v3 04/43] gnu: node: Add an npmrc file to set nodedir
From: |
Pierre Langlois |
Subject: |
[bug#51838] [PATCH v3 04/43] gnu: node: Add an npmrc file to set nodedir. |
Date: |
Sun, 12 Dec 2021 15:19:39 +0000 |
User-agent: |
mu4e 1.6.10; emacs 27.2 |
Philip McGrath <philip@philipmcgrath.com> writes:
> * gnu/packages/node.scm (node, node-lts)[arguments]: Add a phase
> 'install-npmrc to create a "built-in" npmrc file that configures
> "nodedir" to point to the output store path.
> (libnode)[arguments]: Delete the 'install-npmrc phase.
> ---
> gnu/packages/node.scm | 17 ++++++++++++++++-
> 1 file changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
> index a57a74fb81..0f67fe79c2 100644
> --- a/gnu/packages/node.scm
> +++ b/gnu/packages/node.scm
> @@ -250,7 +250,21 @@ (define-public node
> (find-files (string-append prefix "/lib/node_modules")
> (lambda (file stat)
> (executable-file? file))
> - #:stat lstat))))))))
> + #:stat lstat)))))
> + (add-after 'install 'install-npmrc
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out")))
> + (with-output-to-file
> + ;; Use the config file "primarily for distribution
> + ;; maintainers" rather than "{prefix}/etc/npmrc",
> + ;; especially because node-build-system uses --prefix
> + ;; to install things to their store paths:
> + (string-append out "/lib/node_modules/npm/npmrc")
> + (lambda ()
> + ;; Tell npm (mostly node-gyp) where to find our
> + ;; installed headers so it doesn't try to
> + ;; download them from the internet:
> + (format #t "nodedir=~a\n" out)))))))))
When I run `node-gyp configure' in my tree-sitter packages, it's not
able to find the node dir and tries to download headers. So I need to
set `npm_config_nodedir' manually, like so:
--8<---------------cut here---------------start------------->8---
(add-after 'configure 'configure-gyp
(lambda* (#:key inputs #:allow-other-keys)
(let ((node (assoc-ref inputs "node")))
(setenv "npm_config_nodedir" node)
(invoke
(string-append
node
"/lib/node_modules/npm/bin/node-gyp-bin/node-gyp")
"configure"))))
--8<---------------cut here---------------end--------------->8---
I'm wondering if the npmrc approach here is working properly? I see in
another patch you've used the `npx' command to run `node-gyp rebuild',
should I be using that?
Thanks,
Pierre
signature.asc
Description: PGP signature
- [bug#51838] [PATCH 00/11] guix: node-build-system: Support compiling add-ons with node-gyp., Philip McGrath, 2021/12/02
- [bug#51838] [PATCH 00/11] guix: node-build-system: Support compiling add-ons with node-gyp., Liliana Marie Prikler, 2021/12/03
- [bug#51838] [PATCH v3 00/43] guix: node-build-system: Support compiling add-ons with node-gyp., Philip McGrath, 2021/12/08
- [bug#51838] [PATCH v3 01/43] gnu: node: Avoid duplicating build phases., Philip McGrath, 2021/12/08
- [bug#51838] [PATCH v3 04/43] gnu: node: Add an npmrc file to set nodedir., Philip McGrath, 2021/12/08
- [bug#51838] [PATCH v3 04/43] gnu: node: Add an npmrc file to set nodedir.,
Pierre Langlois <=
- [bug#51838] [PATCH v3 04/43] gnu: node: Add an npmrc file to set nodedir., Philip McGrath, 2021/12/12
- [bug#51838] [PATCH v4 00/45] guix: node-build-system: Support compiling add-ons with node-gyp., Philip McGrath, 2021/12/13
- [bug#51838] [PATCH v4 01/45] gnu: node: Avoid duplicating build phases., Philip McGrath, 2021/12/13
- [bug#51838] [PATCH v4 04/45] gnu: node: Add an npmrc file to set nodedir., Philip McGrath, 2021/12/13
- [bug#51838] [PATCH v4 02/45] gnu: node: Update to 10.24.1 for bootstrapping., Philip McGrath, 2021/12/13
- [bug#51838] [PATCH v4 03/45] gnu: node: Patch shebangs in node_modules., Philip McGrath, 2021/12/13
- [bug#51838] [PATCH v4 06/45] guix: node-build-system: Refactor patch-dependencies phase., Philip McGrath, 2021/12/13
- [bug#51838] [PATCH v4 07/45] guix: node-build-system: Add #:absent-dependencies argument., Philip McGrath, 2021/12/13
- [bug#51838] [PATCH v4 05/45] guix: node-build-system: Add delete-lockfiles phase., Philip McGrath, 2021/12/13
- [bug#51838] [PATCH v4 08/45] gnu: node-semver-bootstrap: Use #:absent-dependencies., Philip McGrath, 2021/12/13