かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

npm WARN config init.author.name Use `--init-author-name` instead.

Node.js のバージョンを上げて npm コマンドを使ったら次のような warning が表示された

npm WARN config init.author.name Use `--init-author-name` instead.
npm WARN config init.author.email Use `--init-author-email` instead.
npm WARN config init.author.url Use `--init-author-url` instead.

環境

  • node v16.17.0
  • npm v8.15.0

config の key が変更になっていた

init.author.name
DEPRECATED: Use --init-author-name instead.
cf. config | npm Docs

init.author.xxx の代わりに --init-author-xxx を使えトノコト。
init.author.xxx が残っていると永遠に WARNING が表示されるので、この設定を削除してしまう

# 設定の確認
$  npm c list
; "user" config from /Users/USER_NAME/.npmrc

//registry.npmjs.org/:_authToken = (protected)
init.author.email = "YOUR EMAIL"
init.author.name = "YOUR NAME"
init.author.url = "YUOR URL"
registry = "https://registry.npmjs.org/"

# `init.author.xxx` を削除
$ npm c delete init.author.email
$ npm c delete init.author.name
$ npm c delete init.author.url

設定を削除したらとりあえず警告は出なくなりました。

--init-author-xxx が設定できない問題

ターミナルから設定しようとしてもエラーになる…

$ npm c set --init-author-name="KiKiKi KiKi"
npm ERR! code EUSAGE
npm ERR!
npm ERR! Manage the npm configuration files
npm ERR!
npm ERR! Usage:
npm ERR! npm config set <key>=<value> [<key>=<value> ...]
npm ERR! npm config get [<key> [<key> ...]]
npm ERR! npm config delete <key> [<key> ...]
npm ERR! npm config list [--json]
npm ERR! npm config edit
npm ERR!
npm ERR! Options:
npm ERR! [--json] [-g|--global] [--editor <editor>] [-L|--location <global|user|project>]
npm ERR! [-l|--long]
npm ERR!
npm ERR! alias: c
npm ERR!
npm ERR! Run "npm help config" for more info

こっち使えって書いてるのになんでや…

.npmrc に設定を書いてみても無視される

.npmrc

--init-author-name="KiKiKi"

config を見ると設定としては表示されるが npm init 時に設定が反映されない

# 設定としては読み込まれている
$ npm c list
; "project" config from /Users/kikiki/myproject/.npmrc

--init-author-name = "KiKiKi"

$ npm init
{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "license": "ISC"
}

init-author-xxx なら上手く動作する

GitHubissue も close になっているのでよく分かってないのですが、そこに書かれたコメントの通り --init-author-xxx ではなく init-author-xxx なら上手く動作しました…

init-author-xxx はコマンドから設定可能

$ npm c set init-author-name="KiKiKi KiKi"
$ npm c set init-author-email="YOUR EMAIL"
$ npm c set init-author-url="YOUR WEB SITE"
$
$ npm init
{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "KiKiKi KiKi <YOUR EMAIL> (YOUR WEB SITE)",
  "license": "ISC"
}

WARNING に出てくるプロパティで設定できないのどうして… (ᐡ o̴̶̷̤ ﻌ o̴̶̷̤ ᐡ)


[参考]

「わたしの美しい庭」良かった