It 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&#x27;ll normally see the build log for its native dependencies on the npm output:<p><pre><code>  $ npm install ws
  
  &gt; bufferutil@1.2.1 install &#x2F;Users&#x2F;coreh&#x2F;Projects&#x2F;test&#x2F;node_modules&#x2F;bufferutil
  &gt; node-gyp rebuild
  
    CXX(target) Release&#x2F;obj.target&#x2F;bufferutil&#x2F;src&#x2F;bufferutil.o
    SOLINK_MODULE(target) Release&#x2F;bufferutil.node
  
  &gt; utf-8-validate@1.2.1 install &#x2F;Users&#x2F;coreh&#x2F;Projects&#x2F;test&#x2F;node_modules&#x2F;utf-8-validate
  &gt; node-gyp rebuild
  
    CXX(target) Release&#x2F;obj.target&#x2F;validation&#x2F;src&#x2F;validation.o
    SOLINK_MODULE(target) Release&#x2F;validation.node
  &#x2F;Users&#x2F;coreh&#x2F;Projects&#x2F;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</code></pre>