Cannot Find Module 'Sass'

Cannot Find Module 'Sass'

I write a react app and tried to dockerized it. after i do this it doesn't compile corectly, it doesn't find "sass" module and this is my error:

Failed to compile.

./src/index.scss (./node_modules/css-loader/dist/cjs.js??ref--5-oneOf-6- 
1!./node_modules/postcss-loader/src??postcss!./node_modules/resolve-url-loader??ref--5- 
oneOf-6-3!./node_modules/sass-loader/dist/cjs.js??ref--5-oneOf-6-4!./src/index.scss)
Cannot find module 'sass'
Require stack:
- /app/node_modules/sass-loader/dist/utils.js
- /app/node_modules/sass-loader/dist/index.js
- /app/node_modules/sass-loader/dist/cjs.js
- /app/node_modules/loader-runner/lib/loadLoader.js
- /app/node_modules/loader-runner/lib/LoaderRunner.js
- /app/node_modules/webpack/lib/NormalModule.js
- /app/node_modules/webpack/lib/NormalModuleFactory.js
- /app/node_modules/webpack/lib/Compiler.js
- /app/node_modules/webpack/lib/webpack.js
- /app/node_modules/react-scripts/scripts/start.js

and this is my dockerfile:

From node:14.16.1-alpine

WORKDIR /app

ENV PATH /app/node_modules/.bin:$PATH

COPY package.json ./
COPY package-lock.json ./
RUN npm install --silent
RUN npm install react-scripts@4.0.3 -g --silent

COPY . ./

CMD ["npm", "start"]

and I don't have docker-compose.

any solution?

I add this line to my docker file but it doesn't work and gets me same Error:

RUN npm install -g sass
4

5 Answers

To note! node-sass is deprecated as by now!

Warning: LibSass and Node Sass are deprecated. While they will continue to receive maintenance releases indefinitely, there are no plans to add additional features or compatibility with any new CSS or Sass features. Projects that still use it should move onto Dart Sass.

Instead you can see that Sass is followed on the Dart sass project!

react-scripts already moved that direction!

The used package now is sass! npm i -g sass or npm i sass --save-dev

If you go to npm sass page

This package is a distribution of Dart Sass, compiled to pure JavaScript with no native code or external dependencies. It provides a command-line sass executable and a Node.js API.

You can install Sass globally using npm install -g sass which will provide access to the sass executable. You can also add it to your project using npm install --save-dev sass. This provides the executable as well as a library.

What should be done

Install sass

Globally

npm i -g sass

or

Locally

npm i sass --save-dev

I personally prefer to always go with local installs! So that npm install will add it automatically! Sometimes too to maintain the versions per project!

And

App compilling and running after install!

Marcus Vance
Author

Marcus Vance

Marcus Vance is a cybersecurity auditor and technology writer dedicated to educating the public about online safety, data privacy regulations, enterprise security, and emerging cyber threats.