nixpkgs/pkgs/build-support
adisbladis b6e4b86809 importNpmLock: init
This is an alternative to `fetchNpmDeps` that is notably different in that it uses metadata from `package.json` & `package-lock.json` instead of specifying a fixed-output hash.

Notable features:
- IFD free.
- Only fetches a node dependency once. No massive FODs.
- Support for URL, Git and path dependencies.
- Uses most of the existing `npmHooks`

`importNpmLock` can be used _only_ in the cases where we need to check in a `package-lock.json` in the tree.
Currently this means that we have 13 packages that would be candidates to use this function, though I expect most usage to be in private repositories.

This is upstreaming the builder portion of https://github.com/adisbladis/buildNodeModules into nixpkgs (different naming but the code is the same).
I will archive this repository and consider nixpkgs the new upstream once it's been merged.

For more explanations and rationale see https://discourse.nixos.org/t/buildnodemodules-the-dumbest-node-to-nix-packaging-tool-yet/35733

Example usage:
``` nix
stdenv.mkDerivation {
  pname = "my-nodejs-app";
  version = "0.1.0";

  src = ./.;

  nativeBuildInputs = [
    importNpmLock.hooks.npmConfigHook
    nodejs
    nodejs.passthru.python # for node-gyp
    npmHooks.npmBuildHook
    npmHooks.npmInstallHook
  ];

  npmDeps = buildNodeModules.fetchNodeModules {
    npmRoot = ./.;
  };
}
```
2024-03-05 12:23:28 +13:00
..
add-driver-runpath addDriverRunpath: init 2023-12-03 07:22:51 -08:00
add-opengl-runpath
agda agdaPackages.*: support literate Typst files 2023-10-24 20:34:05 +02:00
alternatives treewide: simplify exec format conditionals 2024-01-07 17:43:33 -08:00
appimage appimage-run: Add pipewire support 2024-02-18 22:34:27 +01:00
binary-cache pkgs/build-support: refactor drvs using __structuredAttrs = true 2023-10-04 18:37:00 +02:00
bintools-wrapper bintools: disable relro/bindnow hardening on windows 2024-01-12 22:11:17 +01:00
build-bazel-package
build-fhsenv-bubblewrap Merge pull request #277494 from trofi/buildFHSEnv-fix-eval 2024-02-22 21:00:19 +01:00
build-fhsenv-chroot build-fhs-user-env: add compatibility for pipewire alsa emulation 2024-02-02 22:38:49 -08:00
build-graalvm-native-image buildGraalvmNativeImage: fix UTF-8 encoding issue for JVM dependencies 2024-01-26 11:12:54 +00:00
buildenv build-support/buildenv: Hoist builder instantiation 2023-12-29 03:04:46 +13:00
cc-wrapper gnatPackages: Add scope for all ada packages 2024-02-25 18:19:50 +01:00
coq
dart dartHooks.dartInstallHook: Add trailing newline 2024-01-18 12:17:43 +11:00
deterministic-uname
dhall
docker Merge pull request #289840 from PigeonF/master 2024-02-29 13:03:07 +01:00
dotnet Merge pull request #278242 from raphaelr/mknugetsource-remove-ifd 2024-01-18 09:22:38 +01:00
emacs Merge branch 'master' into staging-next 2023-12-31 02:31:32 +01:00
expand-response-params expand-response-params: explain what a "response file" is 2023-10-22 08:57:24 +03:00
fake-nss
fetch9front
fetchbitbucket
fetchbower
fetchbzr treewide: refactor .attrs.sh detection 2023-10-04 18:36:57 +02:00
fetchcvs treewide: refactor .attrs.sh detection 2023-10-04 18:36:57 +02:00
fetchdarcs treewide: refactor .attrs.sh detection 2023-10-04 18:36:57 +02:00
fetchdebianpatch
fetchdocker Merge staging-next into staging 2023-10-21 00:02:49 +00:00
fetchfirefoxaddon
fetchfossil fetchfossil: support SRI hashes 2023-11-22 09:47:57 +01:00
fetchgit Merge branch 'master' into staging-next 2023-11-12 19:45:20 +01:00
fetchgitea
fetchgithub fetchFromGitHub: fix compatibility issue with nix-prefetch 2024-01-30 12:21:13 +01:00
fetchgitiles
fetchgitlab Merge pull request #268304 from panicgh/fetchgitlab-sparse-forcegit 2023-12-17 03:34:52 +01:00
fetchgitlocal
fetchgx
fetchhg treewide: refactor .attrs.sh detection 2023-10-04 18:36:57 +02:00
fetchipfs treewide: refactor .attrs.sh detection 2023-10-04 18:36:57 +02:00
fetchmavenartifact
fetchmtn treewide: refactor .attrs.sh detection 2023-10-04 18:36:57 +02:00
fetchnextcloudapp
fetchpatch
fetchpijul build-support/fetchpijul: Enable strictDeps 2023-12-06 18:40:07 +01:00
fetchpypi
fetchpypilegacy fetchPypiLegacy: add test 2024-02-17 17:11:59 +13:00
fetchrepoorcz
fetchrepoproject
fetchs3
fetchsavannah
fetchsourcehut
fetchsvn treewide: refactor .attrs.sh detection 2023-10-04 18:36:57 +02:00
fetchsvnrevision
fetchsvnssh treewide: refactor .attrs.sh detection 2023-10-04 18:36:57 +02:00
fetchtorrent tests.fetchtorrent: add watched-cd license 2023-12-02 02:04:50 +01:00
fetchurl fetchurl/mirrors: add cdn.download.kde.org as default KDE mirror 2023-12-03 14:48:56 +03:00
fetchzip fetchzip: allow dropping unzip 2024-01-12 20:26:16 +01:00
flutter buildFlutterApplication: Change flutterHostPlatform to targetFlutterPlatform 2024-01-19 11:07:33 +11:00
go Merge pull request #276685 from katexochen/buildGoModule/buildid 2024-01-14 14:13:16 +01:00
icon-conv-tools
install-shell-files
java
kernel Merge pull request #283770 from r-ryantm/auto-update/makeInitrdNGTool 2024-02-10 22:19:21 -05:00
libredirect
make-darwin-bundle
make-desktopitem
make-hardcode-gsettings-patch makeHardcodeGsettingsPatch: Support applying patches 2023-11-21 08:42:47 +01:00
make-pkgconfigitem
make-startupitem
mkshell doc: add explanatory code comment 2023-11-13 20:59:33 +01:00
mono-dll-fixer
nix-gitignore
node importNpmLock: init 2024-03-05 12:23:28 +13:00
nuke-references nuke-references: add meta.mainProgram 2024-01-05 15:04:14 -05:00
ocaml ocamlPackages.buildTopkgPackage: Added 2023-09-28 12:03:20 +02:00
oci-tools ociTools: Fix invalid cgroup mount option 2023-12-27 19:41:07 +01:00
php build-support/php: set COMPOSER_ROOT_VERSION by default 2024-02-25 10:03:22 +01:00
pkg-config-wrapper
portable-service
prefer-remote-fetch prefer-remote-fetch: add more fetchers which prefer local builds 2023-11-29 10:25:20 +01:00
references-by-popularity pkgs/build-support: refactor drvs using __structuredAttrs = true 2023-10-04 18:37:00 +02:00
release build-support/release: deprecate phases 2023-11-25 21:00:17 +01:00
remove-references-to
replace-secret replace-secret: add mainProgram 2023-11-26 16:27:42 +02:00
rust Merge staging-next into staging 2024-01-29 18:01:37 +00:00
setup-hooks Merge pull request #255463 from emilylange/stdenv/patch-shebangs-trailing-newline 2024-02-16 18:33:27 +01:00
singularity-tools
snap
src-only
substitute substitute: Deprecate replacements, introduce replacementsList 2024-02-29 00:35:27 +01:00
substitute-files
testers macOS support for NixOS tests (#282401) 2024-03-02 06:33:14 +01:00
trivial-builders applyPatches: Fix a bug (#283887) 2024-02-29 01:29:48 +01:00
vm vmTools: update debian versions 2023-11-24 20:59:42 +04:00
wrapper-common
writers Revert "writers: add support for wrapping" 2024-03-04 07:05:23 +01:00
build-maven.nix
checkpoint-build.nix doc: polish the docs of checkpointBuildTools 2024-01-09 01:34:21 +08:00
closure-info.nix closureInfo: handle empty path set explicitly 2023-11-04 09:54:41 +01:00
make-impure-test.nix
plugins.nix
replace-dependency.nix
setup-systemd-units.nix
source-from-head-fun.nix