- Skip pruning if
NPM_CONFIG_PRODUCTION
orYARN_PRODUCTION
is defined (#529)
- Skip pruning for versions of npm with known issues with git submodules (#528)
- Add timing metrics (#527)
- Install and prune devDependencies by default (#519)
- Fix issue with
NODE_ENV
in CI (#513)
- Fix bug with previous default cache directories fix for npm and yarn (#511)
- Fix metrics typo (#510)
- Add metrics to track new types of failure (#509)
- Don't default to npm 5.x if the user already has npm >= 5 (#499)
- Bump default version of Node to Node 8 (#497)
- Move default Yarn and npm cache directories to a temporary dir (#459)
LOG_CONCURRENCY
fix (#475)- Default Yarn to
1.x
- Add
BUILD_DIR
to env var blacklist
- Move
WEB_CONCURRENCY
logic to separate file (#467) - Temporarily default Yarn to known-good version
- Improve error messages when bin version requirements are invalid (#457)
- Switch to using nodebin to download the node binary (#451)
- Add
$STACK
to the cache signature (#445) - Log output now differentiates between an empty cache and a new cache signature (#448)
- Remove the use of semver.io to bootstrap npm (#452)
- Switch to using nodebin to download iojs binaries (#450)
- Switch to using nodebin to download the yarn binary (#444)
- Default to npm v5 if
package-lock.json
is present (#429)
- Break the build if yarn and npm lockfiles are both included (#411)
- Add
$PREBUILD
to cache signature (#405) - Check for
.heroku/node
existence (#384) - Add
NODE_ENV=test
totest-compile
(#403) - Install
yarn
if a version is defined inengines
(#404)
- Instrument metrics logging
- Undo the Prepend a leading 0 to
WEB_CONCURRENCY
change
- Use yarn in CI tests if available
- Prepend a leading 0 to
WEB_CONCURRENCY
- Default to the latest LTS node version (6.x)
- Cache node_modules
- No longer run
yarn check
- Clear caches from the slug
- Warn, rather than failing, on a failed
yarn check
- Use cache directories instead of node_modules
- Use yarn, if available, as part of the cache signature
- Warn about yarn's youth and evolution on build failures
- Link to opt-out of yarn instructions
- Use
yarn list
instead ofyarn ls
- Hide final dep tree listings under a
NODE_VERBOSE
flag
- Warn on yarn NODE_ENV and NPM_CONFIG incompatibility
- Pass --ignore-engines flag to yarn to avoid hard failures
- Use yarn instead of npm if yarn.lock file is present
- Do not fail build on output errors
- Do not prune before install (shrinkwrap unsupported by prune)
- Extended warnings (missing dependencies, econnreset, no start)
- Remove hard limit on WEB_CONCURRENCY (32)
- Blacklists the LANG env var
- Adds heroku-prebuild script
- Adds heroku-postbuild script
- Retries all curl requests
- Use HTTPS for node binary downloads again
Several edge-case fixes
- Enables compiling the same directory multiple times
- Updates tests for Node v5
- Moves node_modules/.bin binaries to last on the PATH
Fixes piped output buffering issues
Fixes piped output buffering issues (unsuccessful)
Replaces sed with awk for output formatting
- large output (from assets or npm 3) was crashing sed ('resource unavailable')
Caching improvements
- Fixes modules-checked-in reference URL
- When cache restoration is disabled, empties the cache instead of saving it
- Adds bower_components as a default cache target
Detects bower+angular resolution failures Detects missing grunt/gulp/bower failures
Supports WEB_CONCURRENCY=28 for Performance-L dynos
Fixes not defaulting to NODE_ENV=production
during runtime
Supports WEB_CONCURRENCY for Performance-M dynos
Defaults node environment to 'production'; bugfixes
- Fix runtime signature cache invalidation
- Provide error messaging for un-downloadable binaries
- Default to NODE_ENV=production for both build and runtime
- heroku/heroku-buildpack-nodejs#60
Npm bootstrapping skipped when using iojs.
Refactor to bring caching logic to the forefront.
- Fixes cachDirectories issues
- Addresses heroku/heroku-buildpack-nodejs#231
- Addresses heroku/heroku-buildpack-nodejs#226
- Simplifies detect (package.json required)
Updated build failure and help messaging.
Updated messaging.
Disables cache restoration if node_modules already exists.
Accepts cacheDirectories
array in package.json to override default node_modules
caching.