seratch's weblog in Japanese

About Scala, Java and Ruby programming in Japaense. If you need English information, go to http://blog.seratch.net/

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 で設定する。そうするとうまくいくはず。

将来のバージョンではもう少し気の利いたエラーメッセージになってるといいですね。