vue中使用less

1:安装依赖

npm install less less-loader --save

2:引入less

2.1:全局引入less

1:当项目中所有的样式都在一个less文件,则可以在app.vue 中引入less

1
2
3
<style lang="less">
  @import "./style/test.less";
</style>

2:当项目中有多个less文件时,则在main.js 中全局引入全部less

1
2
3
import "./style/test.less"
import "./style/test2.less"
import "./style/test3.less"

2.2局部引入less
局部引入less,那个文件需要引入less 就在那个文件下面加上

1
2
3
<style lang="less">
  @import "./style/test.less";
</style>

建议使用全局全部引入less,因为引入一遍可以所有文件使用,不必每个文件都引入一遍

3:运行报错解决

注:npm run dev 启动项目时遇到一个错误
在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
 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 [email protected] --save
我这里安装的是5.0.0的版本

less的版本不用关注,这个错误关键在于less-loader 的版本过高与less版本无关

重新跑一遍项目则可以发现改问题已解决,样式生效