nwjs/nw-gyp được TopGit xếp vào nhóm dự án mã nguồn mở, với 197 sao trên GitHub, viết chủ yếu bằng Python. native addon build tool for node-webkit
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
nw-gyp is a hack on node-gyp to build native modules for NW.js (node-webkit). We are
trying to provide a smooth way for developers rather than specifying a lot of
command line arguments.
It supports NW.js starts from v0.3.2 and users need to manually specify the
version of NW.js currently.
Please see NW.js document for usage
Features:
Easy to use, consistent interface
Same commands to build your module on every platform
Supports multiple target versions of Node
Installation
You can install with npm:
$ npm install -g nw-gyp
You will also need to install:
On Unix:
python (v2.7 recommended, v3.x.x is not supported)
make
A proper C/C++ compiler toolchain, like GCC
On Mac OS X:
python (v2.7 recommended, v3.x.x is not supported) (already installed on Mac OS X)
Xcode
You also need to install the Command Line Tools via Xcode. You can find this under the menu Xcode -> Preferences -> Downloads
This step will install gcc and the related toolchain containing make
On Windows:
Option 1: Install all the required tools and configurations using Microsoft's windows-build-tools using npm install --global --production windows-build-tools from an elevated PowerShell or CMD.exe (run as Administrator).
Option 2: Install tools and configuration manually:
Visual C++ Build Environment:
Option 1: Install Visual C++ Build Tools using the Default Install option.
Option 2: Install Visual Studio 2015 (or modify an existing installation) and select Common Tools for Visual C++ during setup. This also works with the free Community and Express for Desktop editions.
:bulb: [Windows Vista / 7 only] requires .NET Framework 4.5.1
Install Python 2.7 (v3.x.x is not supported), and run npm config set python python2.7 (or see below for further instructions on specifying the proper Python version and path.)
Launch cmd, npm config set msvs_version 2015
If the above steps didn't work for you, please visit Microsoft's Node.js Guidelines for Windows for additional tips.
If you have multiple Python versions installed, you can identify which Python
version nw-gyp uses by setting the '--python' variable:
$ nw-gyp --python /path/to/python2.7
If nw-gyp is called by way of npmand you have multiple versions of
Python installed, then you can set npm's 'python' config key to the appropriate
value:
$ npm config set python /path/to/executable/python2.7
Note that OS X is just a flavour of Unix and so needs python, make, and C/C++.
An easy way to obtain these is to install XCode from Apple,
and then use it to install the command line tools (under Preferences -> Downloads).
How to Use
To compile your native addon, first go to its root directory:
$ cd my_node_addon
TIP: Most likely you will run something like cd node_modules/some-dependency if
you're trying to get a dependency working in NW.js.
The next step is to generate the appropriate project build files for the current
platform. Use configure for that:
$ nw-gyp configure --target=<0.3.2 or other nw version>
Auto-detection fails for Visual C++ Build Tools 2015, so --msvs_version=2015
needs to be added (not needed when run by npm as configured above):
$ nw-gyp configure --msvs_version=2015
Note: The configure step looks for the binding.gyp file in the current
directory to process. See below for instructions on creating the binding.gyp file.
Now you will have either a Makefile (on Unix platforms) or a vcxproj file
(on Windows) in the build/ directory. Next invoke the build command:
$ nw-gyp build
Now you have your compiled .node bindings file! The compiled bindings end up
in build/Debug/ or build/Release/, depending on the build mode. At this point
you can require the .node file with Node and run your tests!
Note: To create a Debug build of the bindings file, pass the --debug (or
-d) switch when running either the configure, build or rebuild command.
Note: nw.js is packed with Node.js version 0.11.13 and a different version of V8 (3.28.71.2) than the one Node.js 0.11.13 has (3.24.35.22), it might lead to some inconsistent behaviour when building your native modules (see [rvagg/nan#285][nanrepo]).
The "binding.gyp" file
Previously when node had node-waf you had to write a wscript file. The
replacement for that is the binding.gyp file, which describes the configuration
to build your module in a JSON-like format. This file gets placed in the root of
your package, alongside the package.json file.
A barebones gyp file appropriate for building a node addon looks like:
Some additional resources for addons and writing gyp files:
"Going Native" a nodeschool.io tutorial
"Hello World" node addon example
gyp user documentation
gyp input format reference
"binding.gyp" files out in the wild wiki page
Commands
nw-gyp responds to the following commands:
Command
Description
help
Shows the help dialog
build
Invokes make/msbuild.exe and builds the native addon
clean
Removes the build directory if it exists
configure
Generates project build files for the current platform
rebuild
Runs clean, configure and build all in a row
install
Installs node header files for the given version
list
Lists the currently installed node header versions
remove
Removes the node header files for the given version
Command Options
nw-gyp accepts the following command options:
Command
Description
-j n, --jobs n
Run make in parallel
--target=v6.2.1
Node version to build for (default=process.version)
--silly, --loglevel=silly
Log all progress to console
--verbose, --loglevel=verbose
Log most progress to console
--silent, --loglevel=silent
Don't log anything to console
debug, --debug
Make Debug build (default=Release)
--release, --no-debug
Make Release build
-C $dir, --directory=$dir
Run command in different directory
--make=$make
Override make command (e.g. gmake)
--thin=yes
Enable thin static libraries
--arch=$arch
Set target architecture (e.g. ia32)
--tarball=$path
Get headers from a local tarball
--devdir=$path
SDK download directory (default=~/.nw-gyp)
--ensure
Don't reinstall headers if already present
--dist-url=$url
Download header tarball from custom URL
--proxy=$url
Set HTTP proxy for downloading header tarball
--cafile=$cafile
Override default CA chain (to download tarball)
--nodedir=$path
Set the path to the node binary
--python=$path
Set path to the python (2) binary
--msvs_version=$version
Set Visual Studio version (win)
--solution=$solution
Set Visual Studio Solution version (win)
Configuration
nw-gyp responds to environment variables or npm configuration
Environment variables take the form npm_config_OPTION_NAME for any of the
options listed above (dashes in option names should be replaced by underscores).
These work also when nw-gyp is invoked directly: $ export npm_config_devdir=/tmp/.gyp
or on Windows > set npm_config_devdir=c:\temp\.gyp
As npm configuration, variables take the form OPTION_NAME.
This way only works when nw-gyp is executed by npm: $ npm config set [--global] devdir /tmp/.gyp $ npm i buffertools
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/nwjs/nw-gyp là nguồn chính thức.
nwjs/nw-gyp có bao nhiêu sao?
nwjs/nw-gyp có 197 sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/nwjs/nw-gyp. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
nwjs/nw-gyp có tag gì không?
Bản đồng bộ chưa ghi nhận topic GitHub nào cho nwjs/nw-gyp. GitHub topics hiển thị ở thanh bên phải trang repo — đó là nơi đáng kiểm tra nhất.
nwjs/nw-gyp còn đang phát triển không?
Commit gần nhất trên nwjs/nw-gyp là 1.2 năm trước (theo timestamp GitHub). Repo có 49 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
nwjs/nw-gyp viết bằng ngôn ngữ gì?
nwjs/nw-gyp chủ yếu viết bằng Python. Trường "language" của GitHub dựa trên phần lớn byte ở nhánh mặc định.
Đọc đầy đủ README ở tab phía trên.
Muốn nghe thêm một ý kiến về nw-gyp?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về nw-gyp.