title: How to create a nodejs-command-line-tool that it can be installed globally?
body: <p>How to build/install a node-command-line-tool that it can be used globally?</p>
  
  <p>I wrote a little command-line-utility called "<a href="https://www.npmjs.com/package/extractdeps" rel="nofollow noreferrer">extractdeps</a>", that will list all dependencies from a node-application out of a package.json-file.</p>
  
  <p>Unlike other node-utilities like "jest" i am unable to execute it globally in shell without to enter its concrete path.</p>
  
  <p><strong>Example of installation:</strong></p>
  
  <pre><code>$ npm install --verbose -g extractdeps -g
  npm info it worked if it ends with ok
  npm verb cli [ '/usr/local/Cellar/node/8.9.1/bin/node',
  npm verb cli   '/usr/local/bin/npm',
  npm verb cli   'install',
  npm verb cli   '--verbose',
  npm verb cli   '-g',
  npm verb cli   'extractdeps',
  npm verb cli   '-g' ]
  npm info using npm@5.5.1
  npm info using node@v8.9.1
  npm verb npm-session 5cff952d9a7f0be7
  npm http fetch GET 200 https://registry.npmjs.org/extractdeps 19ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/co 14ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/commander 16ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/fs 15ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/shelljs 16ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/glob 6ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/interpret 8ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/rechoir 8ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/fs.realpath 20ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/inflight 21ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/once 20ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/minimatch 21ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/inherits 22ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/path-is-absolute 21ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/wrappy 5ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/brace-expansion 4ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/balanced-match 5ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/concat-map 5ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/resolve 3ms (from cache)
  npm http fetch GET 200 https://registry.npmjs.org/path-parse 4ms (from cache)
  npm verb correctMkdir /Users/hagen/.npm/_locks correctMkdir not in flight; initializing
  npm verb lock using /Users/hagen/.npm/_locks/staging-3a08f0df5026584d.lock for /usr/local/lib/node_modules/.staging
  npm info lifecycle extractdeps@1.0.0~preuninstall: extractdeps@1.0.0
  npm info lifecycle extractdeps@1.0.0~uninstall: extractdeps@1.0.0
  npm verb unbuild rmStuff extractdeps@1.0.0 from /usr/local/lib/node_modules
  npm info lifecycle extractdeps@1.0.0~postuninstall: extractdeps@1.0.0
  npm info lifecycle extractdeps@1.0.0~preinstall: extractdeps@1.0.0
  npm info linkStuff extractdeps@1.0.0
  npm verb linkBins extractdeps@1.0.0
  npm verb linkMans extractdeps@1.0.0
  npm info lifecycle extractdeps@1.0.0~install: extractdeps@1.0.0
  npm info lifecycle extractdeps@1.0.0~postinstall: extractdeps@1.0.0
  npm verb unlock done using /Users/hagen/.npm/_locks/staging-3a08f0df5026584d.lock for /usr/local/lib/node_modules/.staging
  + extractdeps@1.0.0
  updated 1 package in 0.764s
  npm verb exit [ 0, true ]
  npm info ok
  </code></pre>
  
  <p>But executing fails:</p>
  
  <pre><code>$ extractdeps
  -bash: extractdeps: command not found
  </code></pre>
  
  <p>If i do the same with other tools like <strong>jest</strong>, it works perfectly:</p>
  
  <pre><code>$ jest
  -bash: jest: command not found
  
  $ npm install -g jest
  /usr/local/bin/jest -&gt; /usr/local/lib/node_modules/jest/bin/jest.js
  
  $ jest -v
  No tests found
  </code></pre>
  
  <p>What did i missed here?</p>