{
"_from": "node-gyp@5.1.0",
"_id": "node-gyp@5.1.0",
"_inBundle": false,
"_integrity": "sha512-OUTryc5bt/P8zVgNUmC6xdXiDJxLMAW8cF5tLQOT9E5sOQj+UeQxnnPy74K3CLCa/SOjjBlbuzDLR8ANwA+wmw==",
"_location": "/npm/node-gyp",
"_phantomChildren": {},
"_requested": {
"escapedName": "node-gyp",
"fetchSpec": "5.1.0",
"name": "node-gyp",
"raw": "node-gyp@5.1.0",
"rawSpec": "5.1.0",
"registry": true,
"saveSpec": null,
"type": "version"
},
"_requiredBy": [
"#USER",
"/npm",
"/npm/npm-lifecycle"
],
"_resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.0.tgz",
"_shasum": "8e31260a7af4a2e2f994b0673d4e0b3866156332",
"_shrinkwrap": null,
"_spec": "node-gyp@5.1.0",
"_where": "/Users/darcyclarke/Documents/Repos/npm/cli",
"author": {
"email": "nathan@tootallnate.net",
"name": "Nathan Rajlich",
"url": "http://tootallnate.net"
},
"bin": {
"node-gyp": "bin/node-gyp.js"
},
"bugs": {
"url": "https://github.com/nodejs/node-gyp/issues"
},
"bundleDependencies": false,
"dependencies": {
"env-paths": "^2.2.0",
"glob": "^7.1.4",
"graceful-fs": "^4.2.2",
"mkdirp": "^0.5.1",
"nopt": "^4.0.1",
"npmlog": "^4.1.2",
"request": "^2.88.0",
"rimraf": "^2.6.3",
"semver": "^5.7.1",
"tar": "^4.4.12",
"which": "^1.3.1"
},
"deprecated": false,
"description": "Node.js native addon build tool",
"devDependencies": {
"bindings": "^1.5.0",
"nan": "^2.14.0",
"require-inject": "^1.4.4",
"standard": "^14.3.1",
"tap": "~12.7.0"
},
"engines": {
"node": ">= 6.0.0"
},
"homepage": "https://github.com/nodejs/node-gyp#readme",
"installVersion": 9,
"keywords": [
"addon",
"bindings",
"c",
"c++",
"gyp",
"module",
"native"
],
"license": "MIT",
"main": "./lib/node-gyp.js",
"name": "node-gyp",
"optionalDependencies": {},
"preferGlobal": true,
"readme": "# `node-gyp` - Node.js native addon build tool\n\n[](https://travis-ci.com/nodejs/node-gyp)\n[](https://github.com/nodejs/node-gyp/actions?workflow=Python_tests)\n\n`node-gyp` is a cross-platform command-line tool written in Node.js for\ncompiling native addon modules for Node.js. It contains a fork of the\n[gyp](https://gyp.gsrc.io) project that was previously used by the Chromium\nteam, extended to support the development of Node.js native addons.\n\nNote that `node-gyp` is _not_ used to build Node.js itself.\n\nMultiple target versions of Node.js are supported (i.e. `0.8`, ..., `4`, `5`, `6`,\netc.), regardless of what version of Node.js is actually installed on your system\n(`node-gyp` downloads the necessary development files or headers for the target version).\n\n## Features\n\n * The same build commands work on any of the supported platforms\n * Supports the targeting of different versions of Node.js\n\n## Installation\n\nYou can install `node-gyp` using `npm`:\n\n``` bash\n$ npm install -g node-gyp\n```\n\nDepending on your operating system, you will need to install:\n\n### On Unix\n\n * Python v2.7, v3.5, v3.6, or v3.7\n * `make`\n * A proper C/C++ compiler toolchain, like [GCC](https://gcc.gnu.org)\n\n### On macOS\n\n * Python v2.7, v3.5, v3.6, or v3.7\n * [Xcode](https://developer.apple.com/xcode/download/)\n * You also need to install the `XCode Command Line Tools` by running `xcode-select --install`. Alternatively, if you already have the full Xcode installed, you can find them under the menu `Xcode -> Open Developer Tool -> More Developer Tools...`. This step will install `clang`, `clang++`, and `make`.\n * If your Mac has been _upgraded_ to macOS Catalina (10.15), please read [macOS_Catalina.md](macOS_Catalina.md).\n\n### On Windows\n\nInstall the current version of Python from the [Microsoft Store package](https://docs.python.org/3/using/windows.html#the-microsoft-store-package).\n\n#### Option 1\n\nInstall all the required tools and configurations using Microsoft's [windows-build-tools](https://github.com/felixrieseberg/windows-build-tools) using `npm install --global --production windows-build-tools` from an elevated PowerShell or CMD.exe (run as Administrator).\n\n#### Option 2\n\nInstall tools and configuration manually:\n * Install Visual C++ Build Environment: [Visual Studio Build Tools](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools)\n (using \"Visual C++ build tools\" workload) or [Visual Studio 2017 Community](https://visualstudio.microsoft.com/pl/thank-you-downloading-visual-studio/?sku=Community)\n (using the \"Desktop development with C++\" workload)\n * Launch cmd, `npm config set msvs_version 2017`\n\n If the above steps didn't work for you, please visit [Microsoft's Node.js Guidelines for Windows](https://github.com/Microsoft/nodejs-guidelines/blob/master/windows-environment.md#compiling-native-addon-modules) for additional tips.\n\n To target native ARM64 Node.js on Windows 10 on ARM, add the components \"Visual C++ compilers and libraries for ARM64\" and \"Visual C++ ATL for ARM64\".\n\n### Configuring Python Dependency\n\n`node-gyp` requires that you have installed a compatible version of Python, one of: v2.7, v3.5, v3.6,\nor v3.7. If you have multiple Python versions installed, you can identify which Python\nversion `node-gyp` should use in one of the following ways:\n\n1. by setting the `--python` command-line option, e.g.:\n\n``` bash\n$ node-gyp <command> --python /path/to/executable/python\n```\n\n2. If `node-gyp` is called by way of `npm`, *and* you have multiple versions of\nPython installed, then you can set `npm`'s 'python' config key to the appropriate\nvalue:\n\n``` bash\n$ npm config set python /path/to/executable/python\n```\n\n3. If the `PYTHON` environment variable is set to the path of a Python executable,\nthen that version will be used, if it is a compatible version.\n\n4. If the `NODE_GYP_FORCE_PYTHON` environment variable is set to the path of a\nPython executable, it will be used instead of any of the other configured or\nbuiltin Python search paths. If it's not a compatible version, no further\nsearching will be done.\n\n## How to Use\n\nTo compile your native addon, first go to its root directory:\n\n``` bash\n$ cd my_node_addon\n```\n\nThe next step is to generate the appropriate project build files for the current\nplatform. Use `configure` for that:\n\n``` bash\n$ node-gyp configure\n```\n\nAuto-detection fails for Visual C++ Build Tools 2015, so `--msvs_version=2015`\nneeds to be added (not needed when run by npm as configured above):\n``` bash\n$ node-gyp configure --msvs_version=2015\n```\n\n__Note__: The `configure` step looks for a `binding.gyp` file in the current\ndirectory to process. See below for instructions on creating a `binding.gyp` file.\n\nNow you will have either a `Makefile` (on Unix platforms) or a `vcxproj` file\n(on Windows) in the `build/` directory. Next, invoke the `build` command:\n\n``` bash\n$ node-gyp build\n```\n\nNow you have your compiled `.node` bindings file! The compiled bindings end up\nin `build/Debug/` or `build/Release/`, depending on the build mode. At this point,\nyou can require the `.node` file with Node.js and run your tests!\n\n__Note:__ To create a _Debug_ build of the bindings file, pass the `--debug` (or\n`-d`) switch when running either the `configure`, `build` or `rebuild` commands.\n\n## The `binding.gyp` file\n\nA `binding.gyp` file describes the configuration to build your module, in a\nJSON-like format. This file gets placed in the root of your package, alongside\n`package.json`.\n\nA barebones `gyp` file appropriate for building a Node.js addon could look like:\n\n```python\n{\n \"targets\": [\n {\n \"target_name\": \"binding\",\n \"sources\": [ \"src/binding.cc\" ]\n }\n ]\n}\n```\n\n## Further reading\n\nSome additional resources for Node.js native addons and writing `gyp` configuration files:\n\n * [\"Going Native\" a nodeschool.io tutorial](http://nodeschool.io/#goingnative)\n * [\"Hello World\" node addon example](https://github.com/nodejs/node/tree/master/test/addons/hello-world)\n * [gyp user documentation](https://gyp.gsrc.io/docs/UserDocumentation.md)\n * [gyp input format reference](https://gyp.gsrc.io/docs/InputFormatReference.md)\n * [*\"binding.gyp\" files out in the wild* wiki page](https://github.com/nodejs/node-gyp/wiki/%22binding.gyp%22-files-out-in-the-wild)\n\n## Commands\n\n`node-gyp` responds to the following commands:\n\n| **Command** | **Description**\n|:--------------|:---------------------------------------------------------------\n| `help` | Shows the help dialog\n| `build` | Invokes `make`/`msbuild.exe` and builds the native addon\n| `clean` | Removes the `build` directory if it exists\n| `configure` | Generates project build files for the current platform\n| `rebuild` | Runs `clean`, `configure` and `build` all in a row\n| `install` | Installs Node.js header files for the given version\n| `list` | Lists the currently installed Node.js header versions\n| `remove` | Removes the Node.js header files for the given version\n\n\n## Command Options\n\n`node-gyp` accepts the following command options:\n\n| **Command** | **Description**\n|:----------------------------------|:------------------------------------------\n| `-j n`, `--jobs n` | Run `make` in parallel. The value `max` will use all available CPU cores\n| `--target=v6.2.1` | Node.js version to build for (default is `process.version`)\n| `--silly`, `--loglevel=silly` | Log all progress to console\n| `--verbose`, `--loglevel=verbose` | Log most progress to console\n| `--silent`, `--loglevel=silent` | Don't log anything to console\n| `debug`, `--debug` | Make Debug build (default is `Release`)\n| `--release`, `--no-debug` | Make Release build\n| `-C $dir`, `--directory=$dir` | Run command in different directory\n| `--make=$make` | Override `make` command (e.g. `gmake`)\n| `--thin=yes` | Enable thin static libraries\n| `--arch=$arch` | Set target architecture (e.g. ia32)\n| `--tarball=$path` | Get headers from a local tarball\n| `--devdir=$path` | SDK download directory (default is OS cache directory)\n| `--ensure` | Don't reinstall headers if already present\n| `--dist-url=$url` | Download header tarball from custom URL\n| `--proxy=$url` | Set HTTP(S) proxy for downloading header tarball\n| `--noproxy=$urls` | Set urls to ignore proxies when downloading header tarball\n| `--cafile=$cafile` | Override default CA chain (to download tarball)\n| `--nodedir=$path` | Set the path to the node source code\n| `--python=$path` | Set path to the Python binary\n| `--msvs_version=$version` | Set Visual Studio version (Windows only)\n| `--solution=$solution` | Set Visual Studio Solution version (Windows only)\n\n## Configuration\n\n### Environment variables\n\nUse the form `npm_config_OPTION_NAME` for any of the command options listed\nabove (dashes in option names should be replaced by underscores).\n\nFor example, to set `devdir` equal to `/tmp/.gyp`, you would:\n\nRun this on Unix:\n\n```bash\n$ export npm_config_devdir=/tmp/.gyp\n```\n\nOr this on Windows:\n\n```console\n> set npm_config_devdir=c:\\temp\\.gyp\n```\n\n### `npm` configuration\n\nUse the form `OPTION_NAME` for any of the command options listed above.\n\nFor example, to set `devdir` equal to `/tmp/.gyp`, you would run:\n\n```bash\n$ npm config set [--global] devdir /tmp/.gyp\n```\n\n**Note:** Configuration set via `npm` will only be used when `node-gyp`\nis run via `npm`, not when `node-gyp` is run directly.\n\n## License\n\n`node-gyp` is available under the MIT license. See the [LICENSE\nfile](LICENSE) for details.\n",
"readmeFilename": "README.md",
"repository": {
"type": "git",
"url": "git://github.com/nodejs/node-gyp.git"
},
"scripts": {
"lint": "standard */*.js test/**/*.js",
"test": "npm run lint && tap --timeout=120 test/test-*"
},
"version": "5.1.0"
}