3 ms·
> npm seems to handle this just fine for both JS and native (c++) node modules via gyp Could you describe this in a bit more detail? Does gyp (in the context
by haberman 11y ago
> npm seems to handle this just fine for both JS and native (c++) node modules via gyp
Could you describe this in a bit more detail? Does gyp (in the context of npm) build the binaries at install time, or is it a repository of a bunch of pre-built artifacts?
In my experience of installing npm packages, it doesn't seem like it's building native extensions at install time, but it's hard to say for sure.
- voltagex_ 11y agoIt depends. Someone more experienced may be able to add more info, but gyp appears to know what is available pre-built vs what needs to be built. Depending on what platform and options you've selected it might call (for example) the Visual Studio C compiler to build a native extension for you.
- rpedela 11y agoBinary modules are usually built at install time.
- TheCoreh 11y agoIt does build them on install time, if a suitable compiler is available. A classic example is the `ws` module (WebSockets), when you install that you'll normally see the build log for its native dependencies on the npm output: $ npm install ws > bufferutil@1.2.1 install /Users/coreh/Projects/test/node_modules/bufferutil > node-gyp rebuild CXX(target) Release/obj.target/bufferutil/src/bufferutil.o SOLINK_MODULE(target) Release/bufferutil.node > utf-8-validate@1.2.1 install /Users/coreh/Projects/test/node_modules/utf-8-validate > node-gyp rebuild CXX(target) Release/obj.target/validation/src/validation.o SOLINK_MODULE(target) Release/validation.node /Users/coreh/Projects/test └─┬ ws@0.8.1 ├─┬ bufferutil@1.2.1 │ ├── bindings@1.2.1 │ └── nan@2.1.0 ├── options@0.0.6 ├── ultron@1.0.2 └── utf-8-validate@1.2.1