anchor.diff:      tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
       mv node-* $out
     '';
  -  
  +
     # Builds and composes an NPM package including all its dependencies
     buildNodePackage = { name, packageName, version, dependencies ? [], production ? true, npmFlags ? "", dontNpmInstall ? false, preRebuild ? "", ... }@args:
  -    
  +
       stdenv.lib.makeOverridable stdenv.mkDerivation (builtins.removeAttrs args [ "dependencies" ] // {
         name = "node-${name}-${version}";
         buildInputs = [ tarWrapper python nodejs ] ++ stdenv.lib.optional (stdenv.isLinux) utillinux ++ args.buildInputs or [];
         dontStrip = args.dontStrip or true; # Striping may fail a build for some package deployments
  -      
  +
         inherit dontNpmInstall preRebuild;
  -      
  +
         unpackPhase = args.unpackPhase or "true";
  -      
  +
         buildPhase = args.buildPhase or "true";
  -      
  +
         compositionScript = composePackage args;
         passAsFile = [ "compositionScript" ];
  -      
  +
         installPhase = args.installPhase or ''
           # Create and enter a root node_modules/ folder
           mkdir -p $out/lib/node_modules
           cd $out/lib/node_modules
  -          
  +
           # Compose the package and all its dependencies
           source $compositionScriptPath
  -        
  +
           # Patch the shebangs of the bundled modules to prevent them from
           # calling executables outside the Nix store as much as possible
           patchShebangs .
  -        
  +
           # Deploy the Node.js package by running npm install. Since the
           # dependencies have been provided already by ourselves, it should not
           # attempt to install them again, which is good, because we want to make
  
positive.code:     in
      stdenv.lib.makeOverridable stdenv.mkDerivation {
        name = "node-shell-${name}-${version}";
        
        buildInputs = [ python nodejs ] ++ stdenv.lib.optional (stdenv.isLinux) utillinux ++ args.buildInputs or [];
        buildCommand = ''
          mkdir -p $out/bin
  
negative.code:     let
        nodeDependencies = stdenv.mkDerivation {
          name = "node-dependencies-${name}-${version}";
  
          buildInputs = [ tarWrapper python nodejs ] ++ stdenv.lib.optional (stdenv.isLinux) utillinux ++ args.buildInputs or [];
  
          includeScript = includeDependencies { inherit dependencies; };
          passAsFile = [ "includeScript" ];
  
          buildCommand = ''
            mkdir -p $out/lib
            cd $out/lib
            source $includeScriptPath
  
            # Create fake package.json to make the npm commands work properly
            cat > package.json <<EOF
            {
  