From 6158e7872cf1bfc77b3874430375e94a7ebae0c2 Mon Sep 17 00:00:00 2001 From: Daniel Khodabakhsh Date: Mon, 23 Jun 2025 15:46:59 +0200 Subject: [PATCH] gnu: Add node-esbuild. * gnu/packages/web.scm (node-esbuild): New variable. Change-Id: I9538646b7ea0fa2b88a1844a09e696676552c06b --- gnu/packages/web.scm | 50 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 74bdc657fa5ef726e92d8938c00a36d7430f5a01..3a8cc0b3aee6bb97a8a551844a40424c12d97058 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -73,6 +73,7 @@ ;;; Copyright © 2025 Junker " ;;; Copyright © 2025 Jake Forster ;;; Copyright © 2025 Remco van 't Veer " +;;; Copyright © 2025 Daniel Khodabakhsh ;;; ;;; This file is part of GNU Guix. ;;; @@ -107,6 +108,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system meson) + #:use-module (guix build-system node) #:use-module (guix build-system perl) #:use-module (guix build-system pyproject) #:use-module (guix build-system python) @@ -2284,6 +2286,54 @@ directions.") (native-inputs (list go-github-com-kylelemons-godebug node-lts)))) +(define-public node-esbuild + (package + (name "node-esbuild") + (version (package-version esbuild)) + (source + (origin + (inherit (package-source esbuild)) + (file-name (git-file-name name version)) + (snippet #f) + (modules '()))) + (build-system node-build-system) + (inputs (list esbuild)) + (arguments (list + #:tests? #f + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'chdir (lambda _ + (chdir "npm/esbuild"))) + (add-before 'patch-dependencies 'modify-package (lambda _ + (modify-json + (delete-fields '("optionalDependencies" "scripts"))) + (substitute* "../../lib/npm/node-platform.ts" + (("^export var ESBUILD_BINARY_PATH:.+$") + (string-append "export var ESBUILD_BINARY_PATH: string" + " = process.env.ESBUILD_BINARY_PATH" + " || ESBUILD_BINARY_PATH" + " || path.join(__dirname, '..', 'bin', 'esbuild')"))))) + (replace 'build (lambda* (#:key inputs #:allow-other-keys) + ; From scripts/esbuild.js + (invoke + "esbuild" + "../../lib/npm/node.ts" + "--outfile=lib/main.js" + "--bundle" + "--target=node10" + "--define:WASM=false" + (string-append "--define:ESBUILD_VERSION=\"" #$version "\"") + "--external:esbuild" + "--platform=node" + "--log-level=warning") + (copy-file "../../lib/shared/types.ts" "lib/main.d.ts") + (install-file + (string-append (assoc-ref inputs "esbuild") "/bin/esbuild") + "bin")))))) + (home-page (package-home-page esbuild)) + (synopsis "Node module of ESBuild") + (description (package-description esbuild)) + (license (package-license esbuild)))) + (define-public wwwoffle (package (name "wwwoffle")