Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mixmaxhq/eb-fix-npm
[unsupported] Fixes npm in Elastic Beanstalk environments.
https://github.com/mixmaxhq/eb-fix-npm
eb-script ebextensions elasticbeanstalk hooks npm unsupported
Last synced: about 2 months ago
JSON representation
[unsupported] Fixes npm in Elastic Beanstalk environments.
- Host: GitHub
- URL: https://github.com/mixmaxhq/eb-fix-npm
- Owner: mixmaxhq
- License: mit
- Archived: true
- Created: 2016-11-12T04:01:49.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2021-06-25T18:36:35.000Z (over 3 years ago)
- Last Synced: 2024-10-15T17:40:44.242Z (2 months ago)
- Topics: eb-script, ebextensions, elasticbeanstalk, hooks, npm, unsupported
- Homepage: https://www.mixmax.com/careers
- Size: 32.2 KB
- Stars: 50
- Watchers: 23
- Forks: 11
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# eb-fix-npm
This module installs an `.ebextensions` config file that will fix npm in various
ways in AWS Elastic Beanstalk to make your deploys faster and more reliable.**TL;DR** This module makes it possible to upgrade from Node 4 to Node 6 on Elastic
Beanstalk and speeds up npm install by 95%.> Looking for even bigger savings? You might consider [disabling npm altogether](https://github.com/mixmaxhq/eb-disable-npm). **Mixmax no longer uses this module, though we will answer support questions to the best of our ability as well as accept others' PRs.**
This module works by installing deployment hooks that perform setup and cleanup
related to Elastic Beanstalk's use of npm:* Downgrade npm to npm 2 because npm 3 is too slow to install packages for EB (deploys will time out)
* Cache Node modules between deploys
* Only install (don't rebuild) Node modules on application deploy
* Only rebuild (don't install) Node modules on configuration deploy (EB's script
tries to both install and rebuild)
* Actually rebuild Node modules on configuration deploy (EB's script uses the
the wrong directory and so just aborts)
* Remove npm temp files [leftover](https://github.com/npm/npm/issues/6855) by installing from shrinkwrapThe hooks expect that your Elastic Beanstalk application is using either platform
version [3.1.0](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html#concepts.platforms.nodejs) or the previous version, version [2.1.3](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platform-history-nodejs.html). It may work with newer versions—if it does not, PRs are welcome!## Installation
1. `npm install eb-fix-npm --save-dev` (see [here](https://github.com/mixmaxhq/install-files/blob/master/README.md#installation) for why `--save-dev`)
2. Commit the `.ebextensions` file it creates.
3. Deploy.## Modifying the `.ebextensions` file
This module will overwrite the file if/when it is updated.
Pull requests are welcome if you have some generally-useful modifications to
suggest.If you'd like to make modifications specific to your use case, you should uninstall
this module after installing the `.ebextensions` file. Uninstallation won't take
the file with it.## Acknowledgements
Some of the hooks are based on logic from https://github.com/kopurando/better-faster-elastic-beanstalk.
## Release History
* 1.2.5 Use the runtime Node version
* 1.2.4 Set proper home directory
* 1.2.3 Fix rebuild directory
* 1.2.2 Misc fixes
* 1.2.1 Use user's environment variables with npm
* 1.2.0 Avoid unnecessarily installing/rebuilding Node modules
* 1.1.0 Cache Node modules between deploys
* 1.0.0 Initial commit