Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/frangio/node-gyp-cache
🌾 Improve your workflow by caching native dependencies.
https://github.com/frangio/node-gyp-cache
Last synced: 2 months ago
JSON representation
🌾 Improve your workflow by caching native dependencies.
- Host: GitHub
- URL: https://github.com/frangio/node-gyp-cache
- Owner: frangio
- Created: 2019-11-20T14:10:42.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2022-04-12T21:24:31.000Z (over 2 years ago)
- Last Synced: 2024-10-05T04:15:09.998Z (3 months ago)
- Language: TypeScript
- Homepage:
- Size: 42 KB
- Stars: 9
- Watchers: 5
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# `node-gyp-cache` 🌾
**Improve your workflow by caching native dependencies.**
If you're tired of pages and pages of C++ warnings when you just want to develop a JavaScript project, look no further. `node-gyp-cache` caches native dependencies for a **faster workflow**, and silences the compiler output for a **happier experience**. Additionally, it can improve the performance of your continuous integration builds.
> ⚠️ This project is new and experimental. There may be bugs, although I believe the significant improvement in developer experience is worth the risks. Please report anything you find!
## Installation
### Global
Global installation is recommended for the best benefits if you work in an area were native dependencies are commonplace, such as Ethereum development.
```
npm install -g node-gyp-cache
npm config set node_gyp node-gyp-cache# optional for yarn users
yarn config set node_gyp node-gyp-cache
```If you ever uninstall, remember to remove this configuration using `npm config delete node_gyp`.
Alternatively, you can define a global environment variable `npm_config_node_gyp=node-gyp-cache`, which will be picked up by both npm and yarn.
### Local
Local installation is useful for optimizing CI builds.
```
npm install --save-dev node-gyp-cache
echo node_gyp = node-gyp-cache >> .npmrc
```It will also be necessary to configure your CI to cache `node-gyp-cache`'s cache directory. It will be located in `$XDG_CACHE_HOME/node-gyp-cache`, which is usually `~/.cache/node-gyp-cache`.
## Caveats
If you're developing a JavaScript project under normal circumstances, there should be no caveats.
This tool is designed specifically for caching builds of dependencies installed from a single registry (or its mirrors). For a given package name and version we assume that build artifacts will be the same.
If you are developing a package that itself contains native addons, you should be cautious. The cache will be bypassed if the package being built is not under a `node_modules` directory, so there should be no issues in most scenarios, but this measure can fail under some circumstances (such as installing a development version of the package through a tarball).