Sco*_*ott 5 command-line-interface npm
我是 Node 的新手,但我一直在尝试安装一些 npm 模块,在看似成功安装之后,我无法运行新应用程序。我必须有一些基本的配置错误,比如我的 PATH 中缺少位置...
例如,运行:
npm install -g karma
Run Code Online (Sandbox Code Playgroud)
我得到:
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)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行时:
? karma start
fish: Unknown command 'karma'
Run Code Online (Sandbox Code Playgroud)
当然,如果我通过直接寻址整个 karma 路径来运行它,它工作正常:
/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)
Run Code Online (Sandbox Code Playgroud)
当我 npm install 某些东西时,不是在某处创建了符号链接吗?
? which npm
/usr/local/bin/npm
? npm --version
1.2.14
Run Code Online (Sandbox Code Playgroud)
我通过将 /usr/local/share/npm/bin 添加到我的路径来做到这一点。(通过编辑我的 .bashrc 文件)
export PATH=/usr/local/bin:/usr/local/lib:/opt/local/bin:/opt/local/sbin:/usr/local/share/npm/bin:$PATH
Run Code Online (Sandbox Code Playgroud)