BETA

`imagemin-gifsicle` の `Error: spawn node_modules\gifsicle\vendor\gifsicle.exe ENOENT` エラーに対処するために Nodist の Node.js と npm をアップデートする

投稿日:2020-08-21
最終更新:2020-08-21

経緯

imagemin-gifsicle でgifファイルを処理しようとしたら

Error: spawn MYPROJECT\node_modules\gifsicle\vendor\gifsicle.exe ENOENT

というエラーが表示されてしまいました。

ちなみに、

{  
    "devDependencies": {  
        "imagemin-gifsicle": "^7.0.0"  
    }  
}  

imagemin-gifsicle は 7.0.0。

>node -v  
v12.17.0  

>npm -v  
6.14.4  

Node.js は 12.17.0, npm は 6.14.4 、 Nodist (0.9.1)使用環境です。

エラー文で検索すると

該当パッケージの Github の Issue が引っかかりました。

node_modules を一度削除してから入れ直したら?」「Node.js のバージョンが足りないのでは?」といったレスがあったので、試しに Node.js のバージョンを上げてみました。

Node.js のアップデート

>nodist 14.8.0  
14.8.0  
14.8.0 (global)  

>node -v  
v14.8.0  

>npm -v  
Sorry, there's a problem with nodist. Couldn't resolve npm version spec match : Couldn't find any matching version  

npm が対応できなくなってしまいました。仕方ないので一度バージョンを戻してから npm をアップデートします。

とはいえ、 Nodist で npm をアップデートしようとしても上手くアップデートできないことがあった(0.9.1 未満のバージョン)のであまり気は進まないのですが。

npm のアップデート

>npm update -g npm  
npm ERR! code EEXIST  
npm ERR! path PATH\TO\NODIST-DIRECTORY\Nodist\bin\npm.cmd  
npm ERR! Refusing to delete PATH\TO\NODIST-DIRECTORY\Nodist\bin\npm.cmd: is outside PATH\TO\NODIST-DIRECTORY\Nodist\bin\node_modules\npm and not a link  
npm ERR! File exists: PATH\TO\NODIST-DIRECTORY\Nodist\bin\npm.cmd  
npm ERR! Remove the existing file and try again, or run npm  
npm ERR! with --force to overwrite files recklessly.  

Nodist の npm.cmdnpm を削除せよ、とのこと。エラーの指示通り2つのファイルをリネームします( _npm.cmd のような形で)。

>npm update -g npm  
PATH\TO\NODIST-DIRECTORY\Nodist\bin\npx -> PATH\TO\NODIST-DIRECTORY\Nodist\bin\node_modules\npm\bin\npx-cli.js  
PATH\TO\NODIST-DIRECTORY\Nodist\bin\npm -> PATH\TO\NODIST-DIRECTORY\Nodist\bin\node_modules\npm\bin\npm-cli.js  
+ [email protected]  
added 17 packages from 3 contributors, removed 18 packages and updated 22 packages in 25.885s  

>npm -v  
6.14.4  

あれ、上がっていない……。

やり方がまずかったのだろうと思い検索。

以前調べたときのコマンドと異なるコマンドが引っかかったのでこちらを試します。

>nodist npm global 6.14.7  
npm 6.14.7  
https://codeload.github.com/npm/cli/tar.gz/v6.14.7 [=============  ] 4717/5502 KiB 85% 0.1s  

>npm -v  
6.14.7  

上がりました。それでは、改めて Node.js のバージョンを上げます。

>nodist 14.8.0  
14.8.0  
14.8.0 (global)  

>npm -v  
6.14.7  

npm がエラーにならずに済みました。これで大丈夫そうです。

imagemin-gifsicle の動作確認

Node.js も npm もバージョンが上がったのでもう一度パッケージをインストールしてやり直してみます。

node_modules と念のため yarn.lock も削除して、インストール実施。

> yarn  
yarn install v1.22.4  

## 略  

OK。

> gulp  

[XX:XX:XX] Starting 'imageminify'...  
[XX:XX:XX] gulp-imagemin: Minified 3 images (saved 46.6 kB - 67.1%)  

OKです。エラーが表示されなくなりました。

参考

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

アルム=バンドのQrunch

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう