webpack error in Cannot find module 'less'

47,670

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.

Share:
47,670
Alex Buddy
Author by

Alex Buddy

Updated on March 30, 2020

Comments

  • Alex Buddy
    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?