webpack打包时, ress.min.css和normalize.css报错

查看:361
本文介绍了webpack打包时, ress.min.css和normalize.css报错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

报错如下:

webpack.config.js如下:

var webpack = require('webpack');
var path = require('path');

var ExtractTextPlugin = require('extract-text-webpack-plugin');
var HtmlWebpackPlugin = require('html-webpack-plugin');

// NodeJS中的Path对象,用于处理目录的对象,提高开发效率。
// 模块导入
module.exports = {
    // 入口文件地址,不需要写完,会自动查找
    entry: {
        app: './src/client/main',
        // vendor: ['vue'],
    },
    // 输出
    output: {
        path: "build",
        // 文件地址,使用绝对路径形式
        filename: 'dist/[name]-[chunkHash:8].js',
        //[name]这里是webpack提供的根据路口文件自动生成的名字
        // publicPath: './dist/'
        publicPath: '.'
        // 公共文件生成的地址
    },
    // 服务器配置相关,自动刷新!
    devServer: {
        historyApiFallback: true,
        hot: false,
        inline: true,
        grogress: true,
    },
    // 加载器
    module: {
        // 加载器
        loaders: [
            // 解析.vue文件
            { test: /\.vue$/, loader: 'vue' , exclude: /node_modules/},
            // 转化ES6的语法
            { test: /\.js$/, loader: 'babel', exclude: /node_modules/ },
            // 编译css并自动添加css前缀
            { test: /\.css/, loader: ExtractTextPlugin.extract("style-loader", "css-loader!autoprefixer-loader") , exclude: /node_modules/},
            // 图片转化,小于8K自动转化为base64的编码
            { test: /\.(png|jpg|gif)$/, loader: 'url-loader?limit=8192&name=./img/[name]-[chunkHash:8].[ext]' , exclude: /node_modules/},
            //html模板编译?
            { test: /\.(html|tpl)$/, loader: 'html-loader' , exclude: /node_modules/},
        ]
    },
    // 转化成es5的语法
    vue: {
        loaders: {
            css: ExtractTextPlugin.extract('vue-style-loader', "css-loader"),
            stylus: ExtractTextPlugin.extract('vue-style-loader', "css-loader!stylus-loader"),
            less: ExtractTextPlugin.extract('vue-style-loader', "css-loader!less-loader")
        }
    },
    // 转化成es5的语法
    babel: {
        presets: ['es2015'],
        plugins: ['transform-runtime']
    },
    resolve: {
        // require时省略的扩展名,如:require('module') 不需要module.js
        extensions: ['', '.js', '.vue'],
        // 别名,可以直接使用别名来代表设定的路径以及其他
        alias: {
            filter: './src/client/filters',
            components: './src/client/components'
        }
    },
    //- 生产环境
    plugins: [
        new ExtractTextPlugin("dist/[name]-[chunkHash:8].css"),
        new webpack.optimize.UglifyJsPlugin({
            compress: {
                warnings: false
            }
        }),
        new HtmlWebpackPlugin({
            template: 'index-template.ejs',
            // excludeChunks : ['manifest']
        }),
        // new webpack.optimize.CommonsChunkPlugin({
        //     names: ['vendor', 'vendor.js', 'manifest'],
        // })
    ]
};

报的错误发现是用acorn这个包解析的css, 可是在为什么不用config文件中style-loader来解析, 谢谢!

解决方案

...
{ test: /\.css/, loader: ExtractTextPlugin.extract("style-loader", "css-loader!autoprefixer-loader") , exclude: /node_modules/}
...

这一行, exclude 了 node_modules, 于是你 import /node_modules/ress/dist/ress.min.css 的时候,不会使用 css-loader 进行解析,所以就报错了。
你可以先把exclude: /node_modules/去掉试试,最后使用include来解决问题。

这篇关于webpack打包时, ress.min.css和normalize.css报错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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