summaryrefslogtreecommitdiff
path: root/guix/build/node-build-system.scm
AgeCommit message (Expand)Author
2023-06-22guix: node-build-system: Delete from peerDependencies too....The current version of npm in Guix installs peerDependencies by default, whereas previously it would just warn about missing/wrong packages. Fixes <https://issues.guix.gnu.org/issue/64203>. * guix/build/node-build-system.scm (delete-dependencies): Remove supplied dependencies from peerDependencies field too. Lars-Dominik Braun
2023-05-06build-system: node: Use `--install-links' with `npm install'....Later versions of npm need to explicitly install a copy of local dependencies, instead of only a symlink. * guix/build/node-build-system.scm (configure): Add `--install-links' to npm install invocation. (install): Ditto. Jelle Licht
2022-01-09guix: node-build-system: Add 'delete-dependencies' helper function....Many node packages currently skip the configure phase, because they lack both dependencies and a convenient way to build without all of them, e.g. for the purposes of bootstrapping. This patch adds a big hammer to flatten these nails. * guix/build/node-build-system.scm (delete-dependencies): New variable. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Philip McGrath
2022-01-09guix: node-build-system: Add avoid-node-gyp-rebuild phase....Packages with native addons currently try to write to store paths when used as dependecies. This patch adds a phase to replace that behaviour with a no-op. * guix/build/node-build-system.scm (avoid-node-gyp-rebuild): New variable. (%standard-phases): Add 'avoid-node-gyp-rebuild' after 'install'. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Philip McGrath
2022-01-09guix: node-build-system: Add JSON utilities....This commit adds several utility functions for non-destructive transformation of the JSON representation used by (guix build json), particularly for purely functional update of JSON objects. They ought to eventually be exported from their own module, but for now are kept private to allow experimentation. * guix/build/node-build-system.scm (assoc-ref*, jsobject-ref, alist-pop) (alist-update, jsobject-update*, jsobject-union): New variables. (with-atomic-json-file-replacement): New public variable. (module-name, build, patch-dependencies): Use them. Do not resort to unsafe alist primitives from Guile core. Co-authored-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Philip McGrath
2022-01-09guix: node-build-system: Add delete-lockfiles phase....Guix does not use any of these lock files to determine the package versions used during the build, so they only serve to cause problems. * guix/build/node-build-system.scm (delete-lockfiles): New variable. (%standard-phases): Add 'delete-lockfiles' after 'patch-dependencies'. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Philip McGrath
2021-06-24build: Make outputs of node-build-system reproducible....package.json records two hashes of package.tgz, which change for each build, resulting in non-reproducible builds. * guix/build/node-build-system.scm (repack): Add reproducibility options to tar command. Lars-Dominik Braun
2021-04-02build-system: Rewrite node build system....* guix/build/node-build-system.scm: Rewrite it. * guix/build-system/node.scm: Adjust accordingly. * gnu/packages/node-xyz.scm (node-semver): Likewise. Co-authored-by: Timothy Sample <samplet@ngyro.com> Jelle Licht
2020-02-25guix: node-build-system: Do not symlink /bin....* guix/build/node-build-system.scm (install): Do not add a symlink for /bin. Julien Lepiller
2019-07-14Revert "guix: node-build-system: Use guile-json instead of a custom parser."...The effect of this change was to import the (json parser) from the host side into the build side. The solution here would be to do the equivalent of ‘with-extensions’ for gexps. Since we don't use gexps for build systems just yet, revert this for now. This reverts commit 8eb0ba532ebbebef23180e666e0607ea735f9c1a. Julien Lepiller
2019-07-14guix: node-build-system: Use guile-json instead of a custom parser....* guix/build/json.scm: Remove file. * Makefile.am: Remove it. * guix/build/node-build-system.scm: Use (json parser) instead of (guix build json). * guix/build-system/node.scm: Idem. Julien Lepiller
2019-07-14build: Add node-build-system....* guix/build/node-build-system.scm: New file. * guix/build-system/node.scm: New file. * guix/build/json.scm: New file. * doc/guix.texi: Document it. * Makefile.am: Added new files. Co-Authored-By: Julien Lepiller <julien@lepiller.eu> Jelle Licht