I'm a newbie to Node, but I've been trying to install some npm modules and after what seems like a successful install, I can't run the new app. I must have some basic config error, like a missing location in my PATH...

For example, running:

npm install -g karma

I get:

npm http GET https://registry.npmjs.org/karma
npm http 304 https://registry.npmjs.org/karma
npm http GET https://registry.npmjs.org/glob
... (many, many GETs......)

> ws@0.4.25 install /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/bufferutil.node
  SOLINK_MODULE(target) Release/bufferutil.node: Finished
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/validation.node
  SOLINK_MODULE(target) Release/validation.node: Finished
/usr/local/share/npm/bin/karma -> /usr/local/share/npm/lib/node_modules/karma/bin/karma

> karma@0.8.3 install /usr/local/share/npm/lib/node_modules/karma
> node install-log4js.js

npm http GET https://registry.npmjs.org/log4js/0.6.2
npm http 304 https://registry.npmjs.org/log4js/0.6.2
npm http GET https://registry.npmjs.org/async/0.1.15
npm http GET https://registry.npmjs.org/dequeue/1.0.3
npm http 304 https://registry.npmjs.org/dequeue/1.0.3
npm http 304 https://registry.npmjs.org/async/0.1.15
log4js@0.6.2 /usr/local/share/npm/lib/node_modules/log4js
├── dequeue@1.0.3
└── async@0.1.15
karma@0.8.3 /usr/local/share/npm/lib/node_modules/karma
├── pause@0.0.1
├── dateformat@1.0.2-1.2.3
├── xmlbuilder@0.4.2
├── colors@0.6.0-1
├── chokidar@0.6.2
├── growly@1.1.1
├── mime@1.2.9
├── q@0.9.2
├── coffee-script@1.6.2
├── lodash@1.1.1
├── rimraf@2.1.4 (graceful-fs@1.2.0)
├── optimist@0.3.5 (wordwrap@0.0.2)
├── minimatch@0.2.11 (sigmund@1.0.0, lru-cache@2.3.0)
├── glob@3.1.21 (inherits@1.0.0, graceful-fs@1.2.0)
├── LiveScript@1.0.1 (prelude-ls@0.6.0)
├── log4js@0.6.2 (dequeue@1.0.3, async@0.1.15)
├── http-proxy@0.10.0 (pkginfo@0.2.3, utile@0.1.7)
├── istanbul@0.1.22 (abbrev@1.0.4, which@1.0.5, fileset@0.1.5, nopt@2.0.0, wordwrap@0.0.2, async@0.1.22, mkdirp@0.3.5, esprima@0.9.9, handlebars@1.0.10, escodegen@0.0.20)
└── socket.io@0.9.14 (base64id@0.1.0, policyfile@0.0.4, redis@0.7.3, socket.io-client@0.9.11)

But when I then try to run:

➤ karma start
fish: Unknown command 'karma'

Of course, if I run it by directly addressing the entire path to karma, it works fine:

/usr/local/share/npm/lib/node_modules/karma/bin/karma start

 Starting Testacular Server (http://vojtajina.github.com/testacular)
INFO [karma]: Karma server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
INFO [Chrome 26.0 (Mac)]: Connected on socket id sNhp2l8FW6zQ0iQsiRgR
Chrome 26.0 (Mac): Executed 1 of 1 SUCCESS (0.108 secs / 0.004 secs)

When I npm install something, isn't a symlink created somewhere?

➤ which npm

➤ npm --version
  • 1
    A symlink is created to the javascript library so that other javascript programs can use it. That has nothing to do with what happens to binaries. Apr 4 '13 at 1:15

I did it by adding /usr/local/share/npm/bin to my path. (via editing my .bashrc file)

export PATH=/usr/local/bin:/usr/local/lib:/opt/local/bin:/opt/local/sbin:/usr/local/share/npm/bin:$PATH

See this Karma setup page.


npm install karma-cli -g

You should be able to run karma start now.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.