I am trying to create a git hook that evaluate the package.json for changes and auto-runs the shrinkwrapper and commits the changed file to a repository. I have tried a lot, but could not get a working solution. Does anyone know how do that ?
Also, whenever I add a npm module, and try to run npm shrinkwrap, I get this error
npm ERR! Darwin 16.7.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "shrinkwrap"
npm ERR! node v6.11.3
npm ERR! npm v3.10.10
npm ERR! Problems were encountered
npm ERR! Please correct and try again.
npm ERR! missing: request-promise@^4.2.2, required by [email protected]
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
npm ERR! /Users/maxDoung/Desktop/Redux-React/npm-debug.log
for some reason npm shrink does not work if I update package.json manually or install a module using npm. Also, I am not sure if the node or npm version matters. I am using npm 3.10.10, and node v6.11.3
Here is my dependency
"dependencies": {
"apn": "^1.7.7",
"bluebird": "^3.4.1",
"body-parser": "^1.15.0",
"busboy": "^0.2.13",
"connect-redis": "^3.1.0",
"cookie-parser": "^1.4.1",
"cors": "^2.7.1",
"debug": "^2.2.0",
"destroy": "^1.0.4",
"express": "^4.13.4",
"git-rev": "^0.2.1",
"glob": "^7.0.3",
"helmet": "^1.3.0",
"hiredis": "^0.4.1",
"humps": "^1.1.0",
"lodash": "^4.14.1",
"methods": "^1.1.2",
"mysql": "^2.11.1",
"node-gcm": "^0.14.4",
"node-inspector": "^0.12.8",
"node-resource": "^1.2.0",
"on-finished": "^2.3.0",
"on-headers": "^1.0.1",
"parseurl": "^1.3.1",
"path-to-regexp": "^1.5.3",
"redis": "^2.6.0-0",
"request": "^2.69.0",
"sequelize": "^3.23.6",
"serve-favicon": "^2.3.0",
"socket.io": "^1.4.6",
"through2": "^2.0.1"
},
Probably this is what you want or at least it will point you to the right direction. I've tested this on Linux.
Please follow these steps (adapt them as your specific needs):
1 - Put the following file at .git/hooks/pre-commit:
2 - Add run permissions to the pre-commit
chmod +x .git/hooks/pre-commit
Now, if you do the following:
git add package.json
git commit -m "Your commit message"
The following will happen:
NOTE: You could use other hooks, please take a look at a detailed explanation of them here.