vue.js - webpack处理less文件时只是将less文件当css文件打包了,咋办?

查看:497
本文介绍了vue.js - webpack处理less文件时只是将less文件当css文件打包了,咋办?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

现在的问题是less文件不能被便以为css再加载到html中,而是直接当成css文件了(好像是)
vuejs+element-ui+less
周围没人搞这方面的东西,如果有什么可以优化的,希望能指点一下
package.json

"scripts": {
    "dev": "webpack-dev-server -d --inline --hot --env.dev",
    "build": "rimraf dist && webpack -p --progress --hide-modules"
  },
{
  "dependencies": {
    "element-ui": "^1.1.2",
    "vue": "^2.1.8"
  },
  "devDependencies": {
    "autoprefixer": "^6.6.0",
    "babel-core": "^6.21.0",
    "babel-eslint": "^7.1.1",
    "babel-loader": "^6.2.10",
    "babel-preset-es2015": "^6.13.2",
    "css-loader": "^0.26.1",
    "eslint": "^3.12.2",
    "eslint-config-enough": "^0.2.2",
    "eslint-loader": "^1.6.1",
    "file-loader": "^0.9.0",
    "html-loader": "^0.4.4",
    "html-webpack-plugin": "^2.24.1",
    "less": "^2.7.2",
    "less-loader": "^3.0.0",
    "postcss-loader": "^1.2.1",
    "rimraf": "^2.5.4",
    "style-loader": "^0.13.1",
    "url-loader": "^0.5.7",
    "vue-loader": "^10.0.0",
    "vue-template-compiler": "^2.1.8",
    "webpack": "^2.2.0-rc.4",
    "webpack-dev-server": "beta"
  }
}

webpack.config.js

const {
    resolve
} = require('path')
const webpack = require('webpack')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const url = require('url')

module.exports = (options = {}) => ({
    entry: {
        vendor: './src/vendor',
        index: './src/main.js'
    },
    output: {
        path: resolve(__dirname, 'dist'),
        filename: options.dev ? '[name].js' : '[name].js?[chunkhash]',
        chunkFilename: '[id].js?[chunkhash]'
    },
    module: {
        rules: [{
                test: /\.vue$/,
                use: ['vue-loader']
            },
            {
                test: /\.js$/,
                use: ['babel-loader'],
                exclude: /node_modules/
            },
            {
                test: /\.html$/,
                use: [{
                    loader: 'html-loader',
                    options: {
                        root: resolve(__dirname, 'src'),
                        attrs: ['img:src', 'link:href']
                    }
                }]
            }, {
                test: /\.css$/,
                use: ['style-loader', 'css-loader', 'postcss-loader']
            },
            {
                test: /layout\.less$/,
                use: ['style-loader', 'css-loader', 'postcss-loader', 'less-loader']
            },
            {
                test: /favicon\.png$/,
                use: [{
                    loader: 'file-loader',
                    options: {
                        name: '[name].[ext]?[hash]'
                    }
                }]
            },
            {
                test: /\.(png|jpg|jpeg|gif|eot|ttf|woff|woff2|svg|svgz)(\?.+)?$/,
                exclude: /favicon\.png$/,
                use: [{
                    loader: 'url-loader',
                    options: {
                        limit: 10000
                    }
                }]
            }
        ]
    },
    plugins: [
        new webpack.optimize.CommonsChunkPlugin({
            names: ['vendor', 'manifest']
        }),
        new HtmlWebpackPlugin({
            template: 'src/index.html'
        })
    ],
    devServer: {
        host: '127.0.0.1',
        port: 8010,
        proxy: {
            '/api/': {
                target: 'http://127.0.0.1:8080',
                changeOrigin: true,
                pathRewrite: {
                    '^/api': ''
                }
            }
        }
    },
    devtool: options.dev ? '#eval-source-map' : '#source-map'
})


生成的结果是这样的

解决方案

<style lang="less">
//...
</style>

这篇关于vue.js - webpack处理less文件时只是将less文件当css文件打包了,咋办?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆