webpack error in Cannot find module 'less'
Solution 1
It sounds like you haven't installed the less-loader
into your node_modules. Installing it would fix this.
npm install less-loader --save-dev
Edit: Also you will get this error when you haven't installed the css-loader
and style-loader
that you are chaining less-loader
to.
Anyone who comes across this can plus on the issue I submitted for the bad message. "Error in Cannot find module 'less'" when missing loaders chained after less. Revise error message.
Solution 2
This error happens because npm@3 does not resolve peerDependencies any more.
npm install less less-loader
is the way to go.
Solution 3
I had the same issue. ERROR in Cannot find module 'less'
├── UNMET PEER DEPENDENCY file-loader@*
├── UNMET PEER DEPENDENCY less@^2.3.1
├── [email protected]
└── [email protected]
npm WARN EPEERINVALID [email protected] requires a peer of less@^2.3.1
but none was installed.
npm WARN EPEERINVALID [email protected] requires a peer of file-loader@*
but none was installed.
I tried as follows:
npm install --save-dev less
npm install --save-dev file-loader
Then it solved the issues.
Solution 4
I had the same issue with a .Net Core project. I resolved this by adding less to my package.json file as well as less-loader.
"less-loader": "2.2.3",
"less": "2.7.2"
Solution 5
In my case I already had less-loader, style-loader and css-loader
still it was giving same error. When I installed less then it fixed. So make sure you install less also.
npm install less --save-dev
fixed my problem.
Alex Buddy
Updated on March 30, 2020Comments
-
Alex Buddy about 4 years
I'm trying to use less loader in webpack and the issues is - I've installed less loader locally, but when I try to compile everything using webpack command in bask, it prints out: "ERROR in Cannot find module 'less'". In my entry point I require some less file like
require("./less_components/style.less");
Here is my webpack.config file
module.exports = { entry: "./entry.js", output: { path: "./build", filename: "./bundle.js" }, module: { loaders: [ {test: /\.js$/, exlude: /node_modules/, loader: "babel-loader"}, {test: /\.less$/, loader: "style!css!less"} ] } }
What's the matter and how I should fix it?