什么?你咋还不会搭webpack?

2020-02-13  本文已影响0人  鹤仔z

前言:

此文档演示一套webpack项目的完整搭建以及常见配置,保持更新
安装命令默认为cnpm i *——可以根据喜好改成npm或者yarn
后缀为 -D: --save-dev 也就是说当前依赖要安装到开发环境中去 devDependenc
后缀为 -S: --save 也就是说当前依赖要安装到生产环境中去 Dependencies

一:初始化

二:安装webpack以及webpack-cli

三:创建配置环境文件

四:创建开发目录

五:webpack基本配置项(base.config.js)

六:安装常用的plugins插件

cnpm i html-webpack-plugin clean-webpack-plugin copy-webpack-plugin extract-text-webpack-plugin@next -D

七:安装常用的loader

  1. 处理JS的loader

    cnpm i babel-loader @babel/core @babel/preset-env -D

    • babel-loader
    • @babel/core
    • @babel/preset-env

    注意:一定要在根目录创建文件名为.babelrc的文件,并写入以下配置项(删掉注释):

    {
        "presets": [
            [
                // 低版本的转换
                "@babel/preset-env",
                {
                    //设置浏览器版本
                    "targets":{
                        //兼容到所有浏览的最后2个版本
                        "browsers":["last 2 version"]
                    }
                }
            ]
        ]
    }
    
  1. 处理图片的loader

    cnpm i url-loader file-loader -D

    • url-loader

      一般用来解析一些体积比较小的图片,可以通过options中的limit来设置图片的大小,如果图片大于limit的大小了则会用file-loader进行解析

    • file-loader

      一般用来解析比较大的图片

  2. 处理css的loader

    处理css的loader,开发配置和生产配置要分离

    cnpm i style-loader css-loader sass-loader node-sass postcss-loader autoprefixer -D

    • style-loader

    • css-loader

    • sass-loader

      用来解析sass文件

    • node-sass

      用来解析sass文件,没它不行

    • postcss-loader

    • autoprefixer

  3. 处理vue单文件组件

    cnpm i vue-loader vue-template-compiler -D

    • vue-loader

      1. 允许Vue组件的每个部分使用其他的webpack loader。例如在<style>部分使用sass,在<template>`部分使用Pug。
      2. 允许在一个.vue文件中使用自定义块,并对其运用自定义的loader链。
      3. 使用webpack loader将<style>template中引用的资源当做模块依赖来处理。
      4. 为每个组件模拟出 scoped CSS。
      5. 在开发过程中使用热重载来保持状态。
    • vue-template-compiler

    {
        test:/\.vue$/,
        loader:"vue-loader"
    }
    

八:合并webpack配置项

九:webpack服务

十:处理非模块化插件(zepto)

cnpm install script-loader exports-loader -D

上一篇下一篇

猜你喜欢

热点阅读