Promake rule for installing node_modules only when necessary. It also prevents install processes from running simultaneously, since that's easy to do accidentally when some targets depend on a node_modules rule.
npm install --save promake-node-modules
#!/usr/bin/env node
// @flow
const Promake = require('promake')
const fs = require('fs-extra')
const nodeModulesRule = require('promake-node-modules')
const promake = new Promake()
const rule = nodeModulesRule({
promake,
projectDir: 'path/to/project', // defaults to process.cwd(),
command: 'yarn', // defaults to npm
})
promake.task('deps', [rule])
promake.cli()
Creates a promake HashRule
for installing node_modules
. The hash is stored in node_modules/.cache/promake-node-modules.md5
.
The instance of Promake
to add the rule to.
The path to the project directory to install node_modules
in.
The command to run to install node_modules
.
The arguments for the install command
.
Custom function to perform installation (overrides command
and args
)
Additional files to include in the hash. You can put lockfiles in here, but be aware that if you run a command that updates the lockfile, it will cause this rule to run again (since the previous hash won't match).