美文网首页
mac下 webpack4配置

mac下 webpack4配置

作者: 紫瑟枫 | 来源:发表于2018-06-28 17:11 被阅读0次

    环境:

    mac操作系统

    node

    1.安装webpack

      npm由于连接是国外的网站,运行速度要稍微慢些,可以用淘宝镜像

    npm install -g cnpm --registry=https://registry.npm.taobao.org

    全局安装webpack、webpack-cli、webpack-dev-server。

    cnpm install webpack webpack-cli webpack-dev-server -g

    2.创建空文件夹

    mkdir config dist src

    3.初始化npm

    npm init -y

    package.json文件创建完成

    4.在src文件下创建index.htm和index.js文件,使用命令

    touch src/index.html

    mkdir src/js

    touch src/js/main.js

    目录结构如图

    5.webpack文件的基本结构,entry入口文件,output输出文件,module模块(解析css,图片转换,代码压缩等),plugins插件等等

    处理css文件已经分离css,压缩css,ie大于8的版本,进行加上浏览器兼容。

    npm install style-loader css-loader extract-text-webpack-plugin --save-dev

    {// 分离 css

    test:/\.css$/,

    use: ExtractTextPlugin.extract({

    fallback:"style-loader",

    // use: "css-loader"

                        use: [

                            {

    loader:'css-loader',

    options:{

    minimize:true,//css压缩

                                }

                            },

                            {

    loader:'postcss-loader',

    options: {

    plugins:()=>{

                                        autoprefixer({

    browsers: ['ie >= 8','last 4 version']

                                        })

                                    },

    sourceMap:true

                                }

                            }

                        ]

                    })

                }

    分离css

    new ExtractTextPlugin("css/abc.css"), // 可以单独设置css的路径

    less配置并创建a.less

    cnpm i less less-loader --save-dev

    mkdir src/css

    touch src/css/a.less

    在入口文件main.js中引入a.less

    import'../css/a.less"

    配置less

          {

    test:/\.less$/,

    use:['style-loader','css-loader','less-loader']// 编译顺序从右往左

            },

    分离less编译后的css文件

          {

                test:/\.less$/,

                use:ExtractTextPlugin.extract({ //分离less编译后的css文件

                    fallback:'style-loader',

                    use:['css-loader','less-loader']

                })

            },

    处理sass

    安装sass和sass-loader

    cnpm i node-sass sass-loader --save-dev

    创建sass文件

    touch src/css/b.sass

    编译sass

            {

                test:/\.(sass|scss)$/,

                use:['style-loader','css-loader','sass-loader']

            },

    分离sass编译后的css文件

          {

                test:/\.(sass|scss)$/,

                use:ExtractTextPlugin.extract({ //分离less编译后的css文件

                    fallback:'style-loader',

                    use:['css-loader','sass-loader']

                })

            },

    自动添加css前缀

    安装autoprefixer和postcss-loader

    cnpm i autoprefixer postcss-loder --save-dev

    配置postcss-loader,自动添加css前缀

    {

                test:/\.css$/,

                use:ExtractTextPlugin.extract({

                    fallback:'style-loader', // 回滚

                    use:[

                        {loader:'css-loader'},

                        {loader:'postcss-loader'} //利用postcss-loader自动添加css前缀

                    ],

                    publicPath:'../' //解决css背景图的路径问题

                })

            },

            {

                test:/\.less$/,

                use:ExtractTextPlugin.extract({ //分离less编译后的css文件

                    fallback:'style-loader',

                    use:['css-loader','less-loader']

                })

            },

            {

                test:/\.(sass|scss)$/,

                use:['style-loader','css-loader','sass-loader']

            },

    图片配置

    css背景图样式配置

          {

                test:/\.(png|jpg|gif)$/,

                use:[{

                    loader:'url-loader',

                    options:{ // 这里的options选项参数可以定义多大的图片转换为base64

                        limit:10000, // 表示小于10kb的图片转为base64,大于10kb的是路径

                        outputPath:'images' //定义输出的图片文件夹

                    }

                }]

            }

    html文件里img标签图片路径配置

              {

                    test: /\.html$/,

                    use: [

                        {

                            loader: "html-loader",

                        }

                    ]

                },

    打包后图片过大,导致加载缓慢

                      {

                            loader: "image-webpack-loader",

                            options: {

                                bypassOnDebug: true

                            }

                        }

    公共js打包

    optimization和plugins是同级

    optimization:{//提取公共代码

    splitChunks:{

    cacheGroups:{

    vendor:{

    //抽离第三方插件

    test: /node_modules/,

    chunks:'initial',

    name:'vendor',//打包后的文件名,任意命名

    //设置优先级,防止和自定义的公共代码提取时被覆盖,不进行打包

    priority:0

                    },

    utils:{

    //抽离自己写的公共代码,utils这个名字可以随意起

    chunks:'initial',

    name:'utils',//任意命名

    minSize:0//只要超出0字节就生成一个新包

                    }

                }

            }

        },

    html模板打包

    cnpm i html-webpack-plugin --save

    8.设置webpack-dev-server,并在package.json写入命令

    7.package.json里面配置命令 

    "dev": "webpack --config=config/webpack.common.js"

    在终端里面输入命令npm run dev 就可以了

    相关文章

      网友评论

          本文标题:mac下 webpack4配置

          本文链接:https://www.haomeiwen.com/subject/becnyftx.html