ツイート
シェア
LINEで送る
B! はてぶでブックマーク
Pocketでブックマーク
RSSフィード

Node.js, パッケージのコマンドが実行できない。インストールしたのに。

Node.js image
イラストダウンロードサイト【イラストAC】
の画像をもとに加工しています。

npmパッケージで yarnとかwebpackとかインストールしているはずなのに、コマンドが実行できないことはよくあります。

それ、グローバルインストールするの忘れてます。

忘れるくらいならnpxコマンドを使うのをおすすめします。

グローバルインストールは意外と面倒なことが出てくるし。

PCが壊れるなどして環境移行などをしたとき、前のPCではnpmパッケージコマンドが実行できたのに、移行先ではできないとか出てきたりします。

'yarn install' を実行したらコマンドが見つからないとか言われてしまう。

それは、yarnをglobalインストールしていないからです。

やっかいなのは、GitHubなどのリポジトリにはnpmパッケージをまとめてインストールできるpackage.jsonがあったりします。

このファイルを使って 'npm install' を実行したらそれで終わりって思っちゃうんですね?

でもソースプロジェクトのホームにあるローカルのpackage.jsonにはglobal設定はありません。

globalインストールは別途、手動でやらないといけない。

ここで作業が詰まるくらいなら、思い切ってglobalインストールはやめてnpxコマンドを使ったほうがストレスが無いです。

『package.jsonをリポジトリに置いといたから実行環境はすぐできるよ~。』

と相手方に伝えたら、

『yarnとかwebpackのコマンドが動かないんだけど?』

みたいなやりとりが出てくるのも面倒だし。

package.jsonのスクリプトは変更なし

ここで、ひとつの疑問をもつ人がいるでしょう。package.jsonのスクリプトにもnpxを書く必要があるのかと。

その心配はほぼありません。

package.jsonのスクリプトの例
{
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "external-css": "python css-minify-v2-honban.py",
    "cleanup": "python cleanup.py",
    "build": "webpack --mode=production --profile --progress=profile & yarn external-css & yarn cleanup",
    "dev": "webpack --mode=development & yarn external-css & yarn cleanup",
    "watch": "npx nodemon --ext scss,js,html --watch src --exec yarn build"
  },
}

たとえば上記のような設定でも動きます。yarnやwebpackの前にnpxがついてないのに。

このスクリプトの実行はこのコマンドでOK。

npx yarn build

ただし、nodemonはスクリプト内でもnpxが必要です。このコマンドは特殊みたい。

たいがいのパッケージのコマンドはnpxがなくてもいいので、気にすることはないでしょう。

実行してコマンドが見つからないと言われれば、npxを足せばいいだけなので。

前の投稿
Node.js, npxコマンドってなんだ? たんなるnpm runの代わりじゃない。
Node.js, nodemonコマンドはscriptにnpxが必要な不思議。
次の投稿
コメントを残す

*