webpack总结和菠菜网站出租

webpack是一个和菠菜网站出租(企娥217-1793-408)gulp差不多的自动化的构建工具,功能还是很强大的,能够处理图片压缩,能够处理js,能够处理那些预编译的语言比如sass|scss、css等等,这一切都要归功于有个强大的loader功能。

准备篇

webpack是一个用node的npm包管理工具上的工具,下载和安装:npm install -g --save-dev webpack类似于这样。

它主要包括文件:webpack.config.js、package.json(初始化自动生成,里面有很多版本相关的信息,也包括安装的loaders等等)、入口文件、出口文件。

在webpack.config.js里面,主要代码框架:

const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {
    entry: './src/main.js',
    output: {
        filename: 'bundle.js',               //输出的文件名
        path: path.resolve(dirname, 'build') //输出文件所在的目录
    },
    devServer: { // 检测代码变化并自动重新编译并自动刷新浏览器
        contentBase: path.resolve(
dirname, 'build') // 设置静态资源的根目录
    },
    module: { // 如何处理项目中不同类型的模块
        rules: [ // 用于规定在不同模块被创建时如何处理模块的规则数组
            {
                test: /(.jsx|.js)$/,
                use: {
                    loader: "babel-loader",
                    options: {
                        presets: [
                            "env", "react"
                        ] 
                    }
                },
                exclude: path.resolve(__dirname, 'node_modules'),
                include: path.resolve(__dirname, 'src'),
            },
            {//css单独打包
                test: /.scss/,
                use: ExtractTextPlugin.extract({
                    use: [{
                        loader:"css-loader"
                    },{
                        loader: 'sass-loader'
                    }],
                    fallback: "style-loader"
                })
            },
            {
                test: /.css$/,
                use: ExtractTextPlugin.extract({
                    use: ['css-loader'],
                }),
            },
            {
          test: /.(png|jpg)$/,
          loader: 'url-loader?limit=8192',
        }
        ]
    },
    plugins: [
        new ExtractTextPlugin({
            filename: 'main-page.css',
        }),
    ]
};

猜你喜欢

转载自blog.51cto.com/13870274/2142644