webpack error in Cannot find module 'less'

2020-05-21 09:30发布

问题:

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?

回答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.



回答2:

This error happens because npm@3 does not resolve peerDependencies any more.

npm install less less-loader is the way to go.



回答3:

I had the same issue. ERROR in Cannot find module 'less'

├── UNMET PEER DEPENDENCY file-loader@*
├── UNMET PEER DEPENDENCY less@^2.3.1
├── webpack@1.13.2 
└── webpack-dev-server@1.16.2 
npm WARN EPEERINVALID less-loader@2.2.3 requires a peer of less@^2.3.1 
but none was installed.
npm WARN EPEERINVALID url-loader@0.5.7 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.



回答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"


回答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.



回答6:

@Zhorian yours works awesome, I cannot vote cuz of the low level and neither add comment on your answer! after doing npm install less --save-dev, it works, for the error:

Module build failed: Error: Cannot find module 'less'

and when you try to install:

npm install less-loader style-loader css-loader --save-dev

It will gave you:

├── css-loader@0.26.1
├── UNMET PEER DEPENDENCY less@^2.3.1
├── less-loader@2.2.3
└── style-loader@0.13.1


回答7:

the error message described the problem well: missing 'less' module.

npm install less --save-dev will solve it.

Most of the time you should have all of less/less-loader/css-loader/style-loader.

npm install style-loader css-loader less-loader less --save-dev



回答8:

I meet the error also when I have installed less and less-loader both. then I try uninstall them and install them again but not make sense.

Lastly, I find delete the last dist(already exit) can make 'npm run build' right. So, you can try delete the 'dist' dir if it already exits.



标签: less webpack