grunt command not found error after heroku repo purge
Closed this issue · 1 comments
Lately we did a heroku repo purge for one of our apps and after that builds to the app are failing with following error. Earlier to the purge, the exact same config worked as intended.
bin/run_grunt: line 5: grunt: command not found
! Push rejected, failed to compile Python app.
! Push failed
I see in logs that grunt is being installed though. Pasting relevant log below. Please let me know if any other info is required. Thanks.
-----> Running post-compile hook
-----> Running install_nodejs - Latest
/tmp/node_0sKT /tmp/build_850417d0875673f0d96bec05cd0ff1da
/tmp/build_850417d0875673f0d96bec05cd0ff1da
mkdir: created directory ‘/tmp/build_850417d0875673f0d96bec05cd0ff1da/.heroku/vendor’
/tmp/build_850417d0875673f0d96bec05cd0ff1da/.heroku/vendor /tmp/build_850417d0875673f0d96bec05cd0ff1da
/tmp/build_850417d0875673f0d96bec05cd0ff1da
-----> Running install_lessc - Less Compiler
/tmp/build_850417d0875673f0d96bec05cd0ff1da/.heroku/vendor/node/bin/lessc -> /tmp/build_850417d0875673f0d96bec05cd0ff1da/.heroku/vendor/node/lib/node_modules/less/bin/lessc
less@1.4.0 /tmp/build_850417d0875673f0d96bec05cd0ff1da/.heroku/vendor/node/lib/node_modules/less
├── mime@1.2.11
├── mkdirp@0.3.5
├── ycssmin@1.0.1
└── request@2.81.0 (forever-agent@0.6.1, oauth-sign@0.8.2, aws-sign2@0.6.0, tunnel-agent@0.6.0, is-typedarray@1.0.0, caseless@0.12.0, safe-buffer@5.1.1, stringstream@0.0.5, aws4@1.6.0, isstream@0.1.2, json-stringify-safe@5.0.1, extend@3.0.1, performance-now@0.2.0, uuid@3.1.0, qs@6.4.0, combined-stream@1.0.5, mime-types@2.1.17, tough-cookie@2.3.2, form-data@2.1.4, hawk@3.1.3, http-signature@1.1.1, har-validator@4.2.1)
-----> Running install_gruntcli - Grunt Command Line
/tmp/build_850417d0875673f0d96bec05cd0ff1da/.heroku/vendor/node/bin/grunt -> /tmp/build_850417d0875673f0d96bec05cd0ff1da/.heroku/vendor/node/lib/node_modules/grunt-cli/bin/grunt
grunt-cli@1.2.0 /tmp/build_850417d0875673f0d96bec05cd0ff1da/.heroku/vendor/node/lib/node_modules/grunt-cli
├── grunt-known-options@1.1.0
├── nopt@3.0.6 (abbrev@1.1.0)
├── resolve@1.1.7
└── findup-sync@0.3.0 (glob@5.0.15)
-----> Running install_grunt_and_friends - Grunt and Friends
npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
grunt@0.4.5 node_modules/grunt
├── eventemitter2@0.4.14
├── dateformat@1.0.2-1.2.3
├── which@1.0.9
├── getobject@0.1.0
├── async@0.1.22
├── colors@0.6.2
├── lodash@0.9.2
├── rimraf@2.2.8
├── hooker@0.2.3
├── grunt-legacy-util@0.2.0
├── exit@0.1.2
├── nopt@1.0.10 (abbrev@1.1.0)
├── coffee-script@1.3.3
├── iconv-lite@0.2.11
├── underscore.string@2.2.1
├── minimatch@0.2.14 (sigmund@1.0.1, lru-cache@2.7.3)
├── glob@3.1.21 (inherits@1.0.2, graceful-fs@1.2.3)
├── grunt-legacy-log@0.1.3 (grunt-legacy-log-utils@0.1.1, lodash@2.4.2, underscore.string@2.3.3)
├── findup-sync@0.1.3 (lodash@2.4.2, glob@3.2.11)
└── js-yaml@2.0.5 (esprima@1.0.4, argparse@0.1.16)
/tmp/build_850417d0875673f0d96bec05cd0ff1da/.heroku/vendor/node/bin/grunt -> /tmp/build_850417d0875673f0d96bec05cd0ff1da/.heroku/vendor/node/lib/node_modules/grunt-cli/bin/grunt
grunt-cli@1.2.0 /tmp/build_850417d0875673f0d96bec05cd0ff1da/.heroku/vendor/node/lib/node_modules/grunt-cli
├── grunt-known-options@1.1.0
├── nopt@3.0.6 (abbrev@1.1.0)
├── findup-sync@0.3.0 (glob@5.0.15)
└── resolve@1.1.7
grunt-contrib-clean@0.6.0 node_modules/grunt-contrib-clean
└── rimraf@2.2.8
grunt-contrib-concat@0.5.1 node_modules/grunt-contrib-concat
├── chalk@0.5.1 (ansi-styles@1.1.0, escape-string-regexp@1.0.5, supports-color@0.2.0, has-ansi@0.1.0, strip-ansi@0.3.0)
└── source-map@0.3.0 (amdefine@1.0.1)
grunt-contrib-less@1.0.0 node_modules/grunt-contrib-less
├── async@0.9.2
├── lodash@2.4.2
├── chalk@0.5.1 (ansi-styles@1.1.0, escape-string-regexp@1.0.5, supports-color@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0)
└── less@2.7.2 (graceful-fs@4.1.11, mime@1.4.0, image-size@0.5.5, source-map@0.5.7, errno@0.1.4, mkdirp@0.5.1, promise@7.3.1, request@2.81.0)
grunt-contrib-uglify@0.8.0 node_modules/grunt-contrib-uglify
├── uri-path@0.0.2
├── chalk@0.5.1 (ansi-styles@1.1.0, escape-string-regexp@1.0.5, supports-color@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0)
├── uglify-js@2.8.29 (uglify-to-browserify@1.0.2, source-map@0.5.7, yargs@3.10.0)
├── maxmin@1.1.0 (figures@1.7.0, chalk@1.1.3, gzip-size@1.0.0, pretty-bytes@1.0.4)
└── lodash@3.10.1
npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
grunt-contrib-watch@0.6.1 node_modules/grunt-contrib-watch
├── async@0.2.10
├── lodash@2.4.2
├── tiny-lr-fork@0.0.5 (debug@0.7.4, qs@0.5.6, faye-websocket@0.4.4, noptify@0.0.3)
└── gaze@0.5.2 (globule@0.1.0)
typechecker@2.0.8 preinstall /tmp/build_850417d0875673f0d96bec05cd0ff1da/node_modules/grunt-include-source/node_modules/extendr/node_modules/typechecker
node ./cyclic.js
grunt-include-source@0.5.0 node_modules/grunt-include-source
└── extendr@2.1.0 (typechecker@2.0.8)
grunt-contrib-cssmin@0.12.2 node_modules/grunt-contrib-cssmin
├── chalk@0.5.1 (ansi-styles@1.1.0, escape-string-regexp@1.0.5, supports-color@0.2.0, has-ansi@0.1.0, strip-ansi@0.3.0)
├── maxmin@1.1.0 (figures@1.7.0, chalk@1.1.3, gzip-size@1.0.0, pretty-bytes@1.0.4)
└── clean-css@3.4.28 (commander@2.8.1, source-map@0.4.4)
grunt-concurrent@1.0.0 node_modules/grunt-concurrent
├── async@0.9.2
└── pad-stdio@1.0.0 (lpad@1.0.0)
grunt-rev@0.1.0 node_modules/grunt-rev
grunt-shell@1.1.2 node_modules/grunt-shell
└── chalk@1.1.3 (escape-string-regexp@1.0.5, supports-color@2.0.0, ansi-styles@2.2.1, has-ansi@2.0.0, strip-ansi@3.0.1)
grunt-text-replace@0.4.0 node_modules/grunt-text-replace
grunt-env@0.4.4 node_modules/grunt-env
├── ini@1.3.4
└── lodash@2.4.2
lodash@3.3.1 node_modules/lodash
npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
grunt-angular-templates@0.5.7 node_modules/grunt-angular-templates
└── html-minifier@0.6.9 (relateurl@0.2.7, change-case@2.1.6, clean-css@2.2.23, cli@0.6.6, uglify-js@2.4.24)
grunt-include-replace@3.0.0 node_modules/grunt-include-replace
grunt-contrib-copy@1.0.0 node_modules/grunt-contrib-copy
├── file-sync-cmp@0.1.1
└── chalk@1.1.3 (ansi-styles@2.2.1, escape-string-regexp@1.0.5, supports-color@2.0.0, has-ansi@2.0.0, strip-ansi@3.0.1)
-----> Running run_grunt
-----> Running grunt with production settings
bin/run_grunt: line 5: grunt: command not found
! Push rejected, failed to compile Python app.
! Push failed
This looks like an issue with the python buildpack rather than due to the purge cache command.
cc @kennethreitz