質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Yarn

Yarnは、Facebook/Exponent/Google/Tildeが開発したJavaScriptのパッケージマネージャ。npmよりもインストールが速く、厳密にモジュールのバージョンを固定できるなど、npmの問題を解決。npmと互換性があり、同じpackage.jsonを使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Q&A

解決済

2回答

38186閲覧

yarnコマンドが実行できない

pokemonta

総合スコア170

Yarn

Yarnは、Facebook/Exponent/Google/Tildeが開発したJavaScriptのパッケージマネージャ。npmよりもインストールが速く、厳密にモジュールのバージョンを固定できるなど、npmの問題を解決。npmと互換性があり、同じpackage.jsonを使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

0グッド

1クリップ

投稿2020/10/05 02:21

yarnを発行することで
全てのパッケージと依存関係をインストールしたいです。
リンク内容

インストールコマンドを発行した後に
yarnコマンドを発行しましたところ失敗に終わりました。

npm install yarn > yarn@1.22.10 preinstall /home/ec2-user/node_modules/yarn > :; (node ./preinstall.js > /dev/null 2>&1 || true) npm notice created a lockfile as package-lock.json. You should commit this file. + yarn@1.22.10 added 1 package and audited 1 package in 0.408s found 0 vulnerabilities
yarn -bash: yarn: command not found

package.jsonには
"yarn": "^1.22.10"が追加されていることを確認できます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/10/05 02:25

npmがあるなら「そのままnpmを使う」という選択肢もありますが、yarnである必要はありますでしょうか?
pokemonta

2020/10/05 02:29

gitで公開されています手順がyarnで書かれていましたので 必要かと考えていました。。
guest

回答2

0

質問文の理由に関して解説します。

Node.jsに限った話ではありませんが、
OS上でコマンドとして認識されるには下記の条件が必要となります。

  • パスの通ったディレクトリ上に実行ファイルとして存在すること
  • 実行ファイルに実行権限が付与されていること

環境変数のPATHにディレクトリ一覧の文字列が入っています。
例えばyarnコマンドを実行した場合、
このディレクトリ一覧にある実行ファイルを左から順番に探していき見つけたら使う、

なければcommand not foundとエラーになる。
なのでパスの通ったディレクトリにyarnの実行ファイルが無いんだねということが分かります。


Node.js + npmではコマンドを新しく追加できます。
Node.jsをインストールした段階で
環境変数PATHに「専用の実行ファイル置き場」のディレクトリを追記して確保しています。

なのでnpm install -g [module-name]という風にグローバルのオプションを指定すると、
「専用の実行ファイル置き場に」実行ファイルを追加してコマンドを利用可能にしてくれるのです。
これによりyarnコマンドの導入が行えるのです。

逆にnpm install [module-name]コマンドで導入した場合、
そのプロジェクトでしか使いませんからコマンドの拡張まではしません。
当然といえば当然の話ですね。


コマンドを使いたい為だけにグローバルインストールは必須ではありません。
npmのバージョン5.2以降ではnpxコマンドが存在し、
自由にコマンドを実行できます。

例えばyarnが使いたいならこんな感じで動かす事ができます。
頭にnpxを付与して、以降は既存の流れです。

bash

1$ npm -v 26.4.1 3 4$ npx yarn -v 51.22.10

まぁ、yarnを使うならnpm install -g yarnでグローバルインストールした方が良いと思いますけどね。
npxにもっと興味がわいたら下記の記事等をとっかかりに調べてみてください。

参考記事: npm 5.2.0の新機能! 「npx」でローカルパッケージを手軽に実行しよう - Qiita

投稿2020/10/05 04:19

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pokemonta

2020/10/05 05:13

ありがとうございました。 npxコマンド使えるようです。 npmの上位版がnpxみたいな感じですかね。。
pokemonta

2020/10/05 05:14

ローカルパッケージの実行が楽になるってことですね。。
miyabi-sun

2020/10/05 05:22 編集

そうですね。npmというパッケージ管理ツールという土台の上に、 npmのコマンド登録する部分だけの建築物を建てたのがnpxという感じです。 なので上位って気もしてきますね。 npmだけで十分ですが、npxも便利なので使いこなせるとかっこいいですね!是非。
guest

0

ベストアンサー

そもそも論として、yarnをプロジェクトローカルにインストールするというのは一般的な手順ではありません。

npm i -g yarnでグローバルインストールしましょう。

投稿2020/10/05 02:35

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pokemonta

2020/10/05 02:38

`EACCES: permission denied` が発生しまして 解決できずにこの方法を採用しております
maisumakun

2020/10/05 02:53

でしたら、「環境のパッケージマネージャやrootからのインストールなど、別な方法でyarnを入れる」あるいは「諦めてnpmで進める」のが適当かと思います。
pokemonta

2020/10/05 03:32

sudo npm i -g yarn で成功しました ありがとうございました。
kyoya0819

2020/10/06 03:02 編集

> npm から Yarn をインストールすることは一般的にはお勧めしません。 Node ベースのパッケージマネージャで Yarn をインストールする場合は、パッケージは署名されておらず、整合性のチェックはベーシックな SHA1 ハッシュのみで行われており、システム全体にまたがるアプリケーションをインストールする場合にはセキュリティリスクとなります。 > これらの理由から、使用中の OS に最も適した方法で Yarn をインストールすることを強くお勧めします。 https://classic.yarnpkg.com/ja/docs/install/#alternatives-stable
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問