1:安装依赖
npm install less less-loader --save
2:引入less
2.1:全局引入less
1:当项目中所有的样式都在一个less文件,则可以在app.vue 中引入less
<style lang="less">
@import "./style/test.less";
</style>
2:当项目中有多个less文件时,则在main.js 中全局引入全部less
import "./style/test.less"
import "./style/test2.less"
import "./style/test3.less"
2.2局部引入less
局部引入less,那个文件需要引入less 就在那个文件下面加上
<style lang="less">
@import "./style/test.less";
</style>
建议使用全局全部引入less,因为引入一遍可以所有文件使用,不必每个文件都引入一遍
3:运行报错解决
注:npm run dev 启动项目时遇到一个错误
error in ./src/App.vue
Module build failed: TypeError: loaderContext.getResolve is not a function
at createWebpackLessPlugin (F:\test-vue-cli\test\node_modules\less-loader\dist\utils.js:31:33)
at getLessOptions (F:\test-vue-cli\test\node_modules\less-loader\dist\utils.js:148:31)
at Object.lessLoader (F:\test-vue-cli\test\node_modules\less-loader\dist\index.js:27:49)
@ ./node_modules/vue-style-loader!./node_modules/css-loader?{"sourceMap":true}!./node_modules/vue-loader/lib/style-compiler?{"vue":true,"id":"data-v-7ba5bd90","scoped":false,"hasInlineConfig":false}!./node_modules/less-loader/dist/cjs.js?{"sourceMap":true}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./src/App.vue 4:14-357 13:3-17:5 14:22-365
@ ./src/App.vue
@ ./src/main.js
@ multi (webpack)-dev-server/client?http://localhost:8084 webpack/hot/dev-server ./src/main.js
以上错误为安装的less-loader版本过高,去package.json 中看到less-loader的版本为6.0.0
解决办法:
1:卸载当前安装的less-loader高版本:npm uninstall less-loader
2:卸载完成后安装指定低版本的less-loader:npm install less-loader@5.0.0 --save
我这里安装的是5.0.0的版本
less的版本不用关注,这个错误关键在于less-loader 的版本过高与less版本无关
重新跑一遍项目则可以发现改问题已解决,样式生效