yarn init

package.json ファイルをインタラクティブに作成またはアップグレードします。

yarn init

このコマンドで package.json ファイルを作成する対話型のセッションを開始します。 ライセンスや初期バージョンなどのデフォルト値は yarn の init-* 構成の設定で確認できます。

以下は testdir というディレクトリにおけるコマンドの実行例です:

$ yarn init
question name (testdir): my-awesome-package
question version (1.0.0):
question description: The best package you will ever find.
question entry point (index.js):
question git repository: https://github.com/yarnpkg/example-yarn-package
question author: Yarn Contributor
question license (MIT):
question private:
success Saved package.json
✨  Done in 87.70s.

結果は以下の package.json の内容になります:

{
  "name": "my-awesome-package",
  "version": "1.0.0",
  "description": "The best package you will ever find.",
  "main": "index.js",
  "repository": {
    "url": "https://github.com/yarnpkg/example-yarn-package",
    "type": "git"
  },
  "author": "Yarn Contributor",
  "license": "MIT"
}

デフォルトでは、question private に空の回答が与えられた場合、private キーは package.json に追加されません。

既存の package.json ファイルがある場合は、そのファイルのエントリがデフォルト値として使用されます。

既存の以下の package.json がある場合:

{
  "name": "my-existing-package",
  "version": "0.1",
  "description": "I exist therefore I am.",
  "repository": {
    "url": "https://github.com/yarnpkg/example-yarn-package",
    "type": "git"
  },
  "license": "BSD-2-Clause"
}

対話型セッションにおけるデフォルト値は以下のようになります:

$ yarn init
question name (my-existing-package):
question version (0.1):
question description (I exist therefore I am.):
question entry point (index.js):
question git repository (https://github.com/yarnpkg/example-yarn-package):
question author: Yarn Contributor
question license (BSD-2-Clause):
question private:
success Saved package.json
✨  Done in 121.53s.
yarn init のデフォルト値を設定する

以下の config 変数は yarn init でのデフォルト値のカスタマイズに使用できます:

  • init-author-name
  • init-author-email
  • init-author-url
  • init-version
  • init-license
yarn init --yes/-y

このコマンドは上記の対話型セッションをスキップして、package.json ファイルをデフォルト値に基づいて生成します。 上述したように一部のデフォルト値は init-* 構成の設定を変更することで変えることができます。 例えば、 Yarn を新規にインストールして yarn-exampleディレクトリの中で以下のコマンドを実行すると:

$ yarn init --yes
warning The yes flag has been set. This will automatically answer yes to all questions which may have security implications.
success Saved package.json
✨  Done in 0.09s.

以下の package.json ファイルが生成されます:

{
  "name": "yarn-example",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT"
}
yarn init --private/-p

自動的に private: truepackage.json に追加します。

$ yarn init --private

private フラグが設定されている場合、private キーは自動的に true に設定され、初期化処理の残りの作業を継続することができます。

question name (testdir): my-awesome-package
question version (1.0.0):
question description: The best package you will ever find.
question entry point (index.js):
question git repository: https://github.com/yarnpkg/example-yarn-package
question author: Yarn Contributor
question license (MIT):
success Saved package.json
✨  Done in 87.70s.
{
  "name": "my-awesome-package",
  "version": "1.0.0",
  "description": "The best package you will ever find.",
  "main": "index.js",
  "repository": {
    "url": "https://github.com/yarnpkg/example-yarn-package",
    "type": "git"
  },
  "author": "Yarn Contributor",
  "license": "MIT",
  "private": true
}

yes および private フラグの両方を同時に使用することができます。

以下のように使用します:

$ yarn init -yp
warning The yes flag has been set. This will automatically answer yes to all questions which may have security implications.
success Saved package.json
✨  Done in 0.05s.

以下の package.json ファイルが生成されます:

{
  "name": "yarn-example",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "private": true
}