時にフック関数を実行しないようにする例えばpackage.jsonに以下のように書いてあったとします。3という感じで全部実行されます。ローカルマシンでは自分で叩くようにしていると忘れていたりするのでこの動作は助かります。(特にpublish前のprepare)ただprepareでビルド処理とかしていると実行時間がただのyarnに比べて3,4倍になってしまっている感じもします。環境は、無料実行時間カツカツな状態なので、フックしなくていいから少しでも早く終わらせたいです。--ignore-scriptsもう一度ドキュメントを読みました。したら、どうやらこのオプションを使うといけるようです。0.79s.だけのログになりフックされないようにすることができました。上で使おうとした所インストール時のフック処理がされずにおかしなことになりました。このオプションは依存のフックも無効化してしまうようです。このような場合は、それ単体で再度インストールコマンドを実行して入れる感じで対応するといいと思います。依存の依存のバージョンを指定する例えば自分はnode@^10を使っていて、これを使いたいのに直接的な依存ではないパッケージのpackage.jsonのenginesにnode@<10(10より小さい)と指定されているが為にyarnでのインストールが失敗するということが起こる時があります。--ignore-enginesと、依存のenginesの指定を無視するオプションを付けると回避できますが、色んなプロジェクトを行き来していたりで「このプロジェクトではこのオプションが必要」などと覚えるのは面倒だったりするのでできれば解決したかったりします。upath僕が最近目撃したのはupath@1.0.4というパッケージ関連の事です。<=9と指定されているようで、既にほかプロジェクトでは10や11を使っていたので結構な頻度で引っかかりイライラしていました。"11.13.0"しかもこれは直接追加したパッケージではなく、あるパッケージの依存パッケージの中で入っているであろうパッケージでいした。そのあとにリリースされたこのパッケージのnodeのensinesはnode>=4へ修正されたので、そちらを使うようにすれば解決できそうです。選択的な依存関係の解決これをpackage.jsonのresolutionsへ設定することで直接的な依存関係は弄らずにupathだけのバージョンを上げることができます。現在のupathの最新バージョンは1.1.2です。upath@1.1.2を使うようにするためには以下のようにします。}}そしてyarnするだけです。yarn後yarn.lockは以下のように更新されていました。sha512-kXpym8n一応他のバージョンは、node@11.13.0yarn@1.15.2となっています。そのまま使うと対話的に1つずつ確認しながら公開手順を踏めますが、オプションを渡してあげれば一度のコマンド実行で公開まで行ってくれます。オプションnpmではバージョンはMAJOR.MINOR.PATCH@TAGという形で管理します。TAGはオプショナルです。1.2.3ならMAJORバージョンは1、MINORバージョンは2、PATCHバージョンは3という意味です。patchpatchオプションはPATCHバージョンを1つ上げて公開します。現在のバージョンが1.2.3なら1.2.4に上げてから公開します。minorminorオプションはMINOORバージョンを1つ上げて公開します。現在のバージョンが1.2.3なら1.3.0ですね。majorこれもMAJORバージョンを1つ上げて公開するやつです。現在のバージョンが1.2.3なら2.0.0です。new-version好きなバージョンを付けたい時に使います。2.3.4とすれば2.3.4バージョンで公開できます。tagVERSION@TAGの形で公開します。これは上記のどれかと一緒に使います。canaryを実行します。バージョンが1.15.2の現在、少なくともバージョンを上げた後のpackage.jsonのpushなどは一緒にされないようなので忘れずにpushするようにしましょう。ワークスペースワークスペース機能を使うと1つのプロジェクトで複数のnpmパッケージを管理できるようになり、かつnode_modulesを1箇所にまとめることができます。設定プロジェクトルートのpackage.jsonへは以下のような設定が必要になります。]}private:trueは必ず設定が必要です。workspacesへはパッケージとなる(package.jsonを持っている)ディレクトリへのパターンや相対パスを記述します。これで例えば、exampleやpackages/foo/hogeといったディレクトリがpackage.jsonを持っていればnpm管理プロジェクトだとすることができます。この状態でexampleとpackages/foo/hoge双方でreactをインストールするとルートのnode_modulesだけにreactディレクトリが作られます。(bin系は各ディレクトリに作られる)ルートへのパッケージインストールルートに共通パッケージをインストールしたい時などは-Wオプションが必要になります。リンク別に開発しているパッケージを手っ取り早く現在のパッケージで使えるようにします。開発プロジェクトを別々にしているような感じです。<package-name>とすることで、現在のパッケージのnode_modules/へ<package-name>へのシンボリックリンクを置きます。linkと実行します。<package-name>の<package-name>に指定可能なリストに登録されます。plus-oneとしてあげれば完了です。require('plus-one');plusOne(1);うまくリンクできない場合package.jsonの必須項目の漏れがあると、うまくリンクできない場合がありました。僕の場合はversionを設定し忘れていた為に、binがうまくリンクされずしばらく悩みました。yarn.lockyarn。