可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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.