質問: ### 前提・実現したいこと npm installしようとすると、 エラーが発生し、インストールできなくなってしまいました。 /node_modules/フォルダは出来るが中身が空っぽで、何も動きません。 今回始めてnpm installするわけではなく、これまでは普通にいろいろなプロジェクト で使ってきましたが、それまでgulp3.9.1だったのを4.0.0に変更しようと思って ローカルのgulpをアンインストール(`npm uninstall gulp`)をしようとしたあたりから 挙動がおかしくなった気がします。 ちなみに一度uninstallしたつもりですが、 現状では`gulp -v`するとCLIもLocalもともに`v3.9.1`と表示されています。 ### 発生している問題・エラーメッセージ ``` error zlib: Cannot read property 'length' of null ``` ### 試したこと おかしくなったフォルダ(既存のpackage.jsonがある)ではなく、 別のところに新規フォルダを作ってそちらにnpm initから全部やり直してみましたが 同じでした。 ### 補足情報(FW/ツールのバージョンなど) OS:MacOS 10.14.6(Mojave) Node: v9.2.0(※novebrewで入れました) npm: v6.11.3 Gulp: CLI version 3.9.1/Local version 3.9.1 ※「ローカル」というのはpacakge.jsonが存在するプロジェクトフォルダのことを指しているという認識だったのですが違うのでしょうか?例えばデスクトップに新規フォルダを作って`cd`で移動し、その中で`gulp -v`をしても、`CLI version 3.9.1/Local version 3.9.1`と表示されます。 各プロジェクトのフォルダが「ローカル」ではないのであれば、Local versionと表示されているgulpはいったいどこにあるものなのか......??? 謎です。 ※node v6.11.2/gulp 3.9.1の前提で動かしている他のプロジェクトは正常に稼働しています。 試しにNodeをv6.11.2に変更してデスクトップの新規フォルダ内でnpm installしたら、正常にインストールされました。なのでNodeのバージョンを変えたことが何か関係しているのではないかと思います。(※なおnode v9.2.0の環境下でもgulp3.9.1の既存package.jsonをそのまま使っている段階では特にエラーは出ていませんでした) 他に必要な情報があればご指摘ください。 よろしくお願い申し上げます。 追記 -- 念のため現状のpackage.jsonも掲載しておきます。 ``` { "name": "myproject", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "autoprefixer": "^9.5.1", "browser-sync": "^2.11.1", "browserslist": [ "last 4 versions", "ie 9", "ie 10", "android >= 4", "ios_saf >=8" ], "gulp": "^3.9.1", "gulp-changed": "^4.0.1", "gulp-ejs": "^4.1.2", "gulp-imagemin": "^6.1.0", "gulp-plumber": "^1.1.0", "gulp-postcss": "^8.0.0", "gulp-rename": "^1.4.0", "gulp-sass": "^4.0.2", "imagemin-mozjpeg": "^8.0.0", "imagemin-pngquant": "^8.0.0", "postcss-gap-properties": "^1.0.0" } } ```
回答: 自己解決しました。 以前gulpをインストールした時に、 `npm install -g gulp-cli` ではなく、 `npm install -g gulp` という形で入れていて、その時グローバルに入ったgulpを すべてのプロジェクトから読みに行っている状態になっていることが原因だったようです。 一旦グローバルとローカル両方のgulpをアンインストールして、 改めてグローバルに再インストールした上で、 ブロジェクトフォルダも新しくまっさらな状態から構築し直したら治りました。