npm login で default value must be string or number
ブログに書くことで記憶に定着させよう程度の内容ですが、新しいマシンで npm publish しようとして、まず npm login しようとすると謎めいたエラーメッセージが。username/password は合ってるのに。
$ npm -v 1.3.21 $ npm login Username: xxxx Password: npm ERR! Error: default value must be string or number npm ERR! at read (/usr/local/Cellar/node/0.10.24/lib/node_modules/npm/node_modules/read/lib/read.js:15:11) npm ERR! at readEmail (/usr/local/Cellar/node/0.10.24/lib/node_modules/npm/lib/adduser.js:96:3) npm ERR! at loop (/usr/local/Cellar/node/0.10.24/lib/node_modules/npm/lib/adduser.js:33:20) npm ERR! at /usr/local/Cellar/node/0.10.24/lib/node_modules/npm/lib/adduser.js:89:5 npm ERR! at Interface.onLine (/usr/local/Cellar/node/0.10.24/lib/node_modules/npm/node_modules/read/lib/read.js:111:5) npm ERR! at Interface.EventEmitter.emit (events.js:95:17) npm ERR! at Interface._onLine (readline.js:202:10) npm ERR! at Interface._line (readline.js:531:8) npm ERR! at Interface._ttyWrite (readline.js:760:14) npm ERR! at ReadStream.onkeypress (readline.js:99:10) npm ERR! If you need help, you may report this *entire* log, npm ERR! including the npm and node versions, at: npm ERR! <http://github.com/isaacs/npm/issues>
エラーメッセージをググるとすぐわかるレベルの話で、これと類似なんですが
https://github.com/npm/npm/issues/4363
npm は $HOME/.npmrc に email が設定済であることが前提になっているようで。
.npmrc を開いて email=xxx@example.com と一行書き足すか、npm config set email xxx@example.com で設定する。そうするとうまくいくはず。
将来のバージョンではもう少し気の利いたエラーメッセージになってるといいですね。