版本说明:本文档针对vue-cli2
一.安装less
npm i less less-loader --save-dev
二.设置less变量到全局
// 1.安装sass-resources-loader
npm install sass-resources-loader --save-dev
// 2.配置build/,找到函数,如下
= function (options) {
options = options || {}
const cssLoader = {
loader: 'css-loader',
options: {
sourceMap:
}
}
const postcssLoader = {
loader: 'postcss-loader',
options: {
sourceMap:
}
}
// 此处添加配置
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
const loaders = ? [cssLoader, postcssLoader] : [cssLoader]
if (loader) {
({
loader: loader + '-loader',
options: ({}, loaderOptions, {
sourceMap:
})
})
}
// Extract CSS when that option is specified
// (which is the case during production build)
if () {
return ({
use: loaders,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
// /en/configurations/
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'), // 第二步更改这里
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass'),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
}
在上面注释“// 此处添加配置”处添加如下代码:
// 配置less变量全局
function lessResourceLoader() {
var loaders = [
cssLoader,
'less-loader',
{
loader: 'sass-resources-loader',
options: {
resources: [
(__dirname, '../src/assets/style/'), // ../src/assets/style/为你的全局less变量的文件目录
]
}
}
]
if () {
return ({
use: loaders,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
3.更改函数的return参数,将less: generateLoaders(‘less’)改为 less: lessResourceLoader(‘less’),如下:
return {
css: generateLoaders(),
postcss: generateLoaders(),
// less: generateLoaders('less'), // 更改这里为下面一行
less: lessResourceLoader('less'), // lessResourceLoader即第一步添加的函数名
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass'),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
经过上面两处更改后,函数如下:
= function (options) {
options = options || {}
const cssLoader = {
loader: 'css-loader',
options: {
sourceMap:
}
}
const postcssLoader = {
loader: 'postcss-loader',
options: {
sourceMap:
}
}
// 第一步:配置less变量全局
function lessResourceLoader() {
var loaders = [
cssLoader,
'less-loader',
{
loader: 'sass-resources-loader',
options: {
resources: [
(__dirname, '../src/assets/style/'), // ../src/assets/style/为你的全局less变量的文件目录
]
}
}
]
if () {
return ({
use: loaders,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
const loaders = ? [cssLoader, postcssLoader] : [cssLoader]
if (loader) {
({
loader: loader + '-loader',
options: ({}, loaderOptions, {
sourceMap:
})
})
}
// Extract CSS when that option is specified
// (which is the case during production build)
if () {
return ({
use: loaders,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
// /en/configurations/
return {
css: generateLoaders(),
postcss: generateLoaders(),
// 第二步: less: generateLoaders('less')更改为 less: lessResourceLoader('')
// less: generateLoaders('less'),
less: lessResourceLoader(''),
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass'),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
}
重启项目即可