自分のための備忘録です。
エラー内容
いつものようにプロジェクトの開発環境を立ち上げようとすると、以下のエラーが出ました。
$ npm run start
# 略
ERROR in ./src/css/style.sass (./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/css/style.sass)
Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
Error: Cannot find module 'node-sass'
node-sass
が見つからないとのことですが、package.json
には記載があります。
package.json
"dependencies": {
// 略
"node-sass": "^4.13.1",
// 略
}
インストールを試みると、以下のエラーが出ました。
$ npm install
> node-sass@4.13.1 install /Users/kawakami_air/project/project_name/frontend/node_modules/node-sass
> node scripts/install.js
Downloading binary from https://github.com/sass/node-sass/releases/download/v4.13.1/darwin-x64-83_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v4.13.1/darwin-x64-83_binding.node":
HTTP error 404 Not Found
Hint: If github.com is not accessible in your location
try setting a proxy via HTTP_PROXY, e.g.
export HTTP_PROXY=http://example.com:1234
or configure npm proxy via
npm config set proxy http://example.com:8080
> node-sass@4.13.1 postinstall /Users/kawakami_air/project/project_name/frontend/node_modules/node-sass
> node scripts/build.js
原因
node-sassのバージョンがNode.jsのバージョンと対応していないのが原因のようでした。
プロジェクトのNode.jsのバージョンを確認(v14.15.1)
$ nvm ls
v14.15.1
-> system
default -> 14.15.1 (-> N/A)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v14.15.1) (default)
stable -> 14.15 (-> v14.15.1) (default)
lts/* -> lts/hydrogen (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.0 (-> N/A)
lts/hydrogen -> v18.16.0 (-> N/A)
node-sassのv4.13.1を確認すると、Node.jsのバージョンは13までしか対応していません。
解決方法
Node.jsのバージョンを下げます。
# インストール可能な Node.js のバージョン一覧を確認
nvm ls-remote
# 略
# 13に下げる
$ nvm install 13.10.1
# バージョンを切替え(これをしないと、dockerを再起動した際に元のバージョンに戻ってしまいました)
$ nvm use v13.10.1
Now using node v13.10.1 (npm v6.13.7)
バージョンが切替わっているのを確認(v13.10.1)
$ nvm ls
-> v13.10.1
v14.15.1
system
default -> 14.15.1 (-> N/A)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v14.15.1) (default)
stable -> 14.15 (-> v14.15.1) (default)
lts/* -> lts/hydrogen (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.17.1 (-> N/A)
再度試行したら、無事成功しました!
$ npm run start
# 略
ℹ 「wdm」: Compiled successfully.
なぜNode.jsのバージョンが変わってしまっていたのかは不明です・・