dockerで構築したコンテナにてgulpが走らない時の対応法


やりたいこと

  • docker-compose up -dにて立ち上げたnodejsコンテナにて、gulpが走らないことを解決したい

環境

$ docker exec -it node_js_1 npm -v
v6.1

$ docker exec -it node_js_1 node -v
v10.6.0

$ docker exec -it node_js_1 gulp -v
v3.9.1

原因

タスクランナーのnode-sassに不備があったため

解決策

node-sassをuninstallして再度install

//まずnode_jsコンテナに入る
$ docker exec -it node_js_1 bash

//コンテナ内でnode-sassをuninstall実行
$ npm uninstall node-sass

//node-sassをinstall実行
$ npm install node-sass

ちなみに、プロジェクトのルートディレクトリからでもinstallまで可能

$ docker exec -it node_js_1 npm uninstall node-sass
$ docker exec -it node_js_1 npm install node-sass
$ gulp

上記でコンパイルが成功しました。

node-sassとは

Node.jsをLibSassに関連付けされるLibraryで、高速でsassファイルをコンパイルする。
gulpfile.jsにてrequireして使う。
https://www.npmjs.com/package/node-sass

LibSassとは

C++で書かれたコンパイラー

考察

gulp-scssとの違いを調査したい。
そもそもこれDocker関係なかった...
強いて言えばdocker-compose.ymlやDockerfileの中身が間違っていたくらいか...

フロント超絶初心者なのでご指摘等お願いします。