From 4eaea26c3dddba80ef6d783fccc9ca35e6fcf153 Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Sun, 13 Oct 2019 13:16:17 +0200 Subject: Allow drop some dev. dependencies --- npmPackages/_scripts/drop-dev-deps.js | 25 +++++++++++++++++++++++++ npmPackages/buildNpmPackage.nix | 7 +++++++ 2 files changed, 32 insertions(+) create mode 100644 npmPackages/_scripts/drop-dev-deps.js diff --git a/npmPackages/_scripts/drop-dev-deps.js b/npmPackages/_scripts/drop-dev-deps.js new file mode 100644 index 0000000..bc8c2f6 --- /dev/null +++ b/npmPackages/_scripts/drop-dev-deps.js @@ -0,0 +1,25 @@ +const process = require('process'); + +const { + pipeThrough +} = require('./package.js'); + +pipeThrough((pkg, done) => { + var notFound = []; + pkg.devDependencies = pkg.devDependencies || {}; + + process.argv.slice(2).forEach((d) => { + if (pkg.devDependencies[d]) { + delete pkg.devDependencies[d]; + } else { + notFound.push(d); + } + }); + + if (notFound.length > 0) { + console.error(`** ERROR: these dev. dependencies are not declared: ${notFound}`); + process.exit(1); + } + + done(pkg); +}); diff --git a/npmPackages/buildNpmPackage.nix b/npmPackages/buildNpmPackage.nix index 5a0f4e5..76f08ee 100644 --- a/npmPackages/buildNpmPackage.nix +++ b/npmPackages/buildNpmPackage.nix @@ -4,6 +4,7 @@ , version , src , npmInputs ? [] # NPM packages used to resolve dependencies +, dropDevDependencies ? [] , buildInputs ? [] # Other build inputs , nativeBuildInputs ? [] , patches ? [] @@ -50,6 +51,12 @@ stdenv.mkDerivation { update-notifier = false NPMRC + ${lib.optionalString (dropDevDependencies != []) '' + node ${scripts}/drop-dev-deps.js ${lib.concatMapStringsSep " " (f: "'${f}'") dropDevDependencies} \ + < package.json > package.json.devdeps + mv package.json.devdeps package.json + ''} + node ${scripts}/resolve.js \ ${lib.optionalString jailbreak "--jailbreak"} \ ${toString npmInputs} < package.json > package.json.resolved -- cgit v1.2.3