webpack3.0+总结

ul>li{
color:blue;
font-size:20px
}
.items>ul>li>ul>li{
color:crimson
}
-->

webpack直接打包

  • 1.装生产环境
  • 2.打包 webpack 入口文件路径 出口文件路径

webpack.config.js配置

  • 1.出入口配置

    • 1-1.直接控制台输入webpack就可以打包了
    • 1-2.多入口文件配置
    • 1-3.热更新安装
    • 1-4.css-loader style-loader配置 三种写法
    • 1-5.代码压缩插件 uglifyjs-webpack-plugin 次插件webpack内部集成 不需要安装 注意:此处不可以用dev启动,原始webpack压缩就可以了
    • 1-6.此刻以生产环境启动服务器 分离的文件路径就ok了 对于website路径前缀可以更改
    • const path=require(‘path‘);
      module.exports={
          entry:‘./src/index.js‘, //入口配置
          output:{
              path:path.resolve(__dirname,‘dist‘),//出口路径
              filename:‘index.js‘//出口文件名
          },//出口配置
          // module:{},//图片字体视频等配置
          // plugins:{},//插件
          // devServer:{}//服务
      }
      const path=require(‘path‘);
      module.exports={
          entry:{
              entry1:‘./src/index1.js‘,
              entry2:‘./src/index2.js‘
          }, //多入口配置
          output:{
              path:path.resolve(__dirname,‘dist‘),//出口路径
              filename:‘[name].js‘//多出口 name表示和对应的入口文件入口属性名一样
          }
      }

html文件放入src的骚操作,html打包

  • 1.安装并引入html-webpack-plugin
  • 2.直接在终端运行webpack,html文件被打包到dist文件夹中

css引入图片打包 直接打包成js一部分

  • 1.安装file-loader url-loader
  • 2.配置

css分离

  • 1.将打包好到js文件的css分离
  • 2.下载包并引入 extract-text-webpack-plugin
  • 3.修改css配置 但是这样分离的css路径是有问题的
  • 4.设置出口文件的公共路径 http://localhost:8080
  • 5.如果本地引用 设置公共路径为 path.resolve(‘dist‘)

img引入的图片打包

  • 1.安装html-withimg-loader
  • 2.配置

对于动画样式如何自动添加内核前缀

  • 1.安装postcss-loader 和autoprefixer
  • 2.新建文件postcss.config.js
  • 3.配置

去除多余的css样式

  • 1.安装purifycss-webpack purify-css
  • 2.全局引入
  • 3.配置plgins

es5转换为6的最新包

  • 1.下载安装babel-preset-env
  • 2.添加.babelrc配置

目录结构

webpack.config.js配置

const path=require(‘path‘);
const uglify=require(‘uglifyjs-webpack-plugin‘);
const htmlPlugin=require(‘html-webpack-plugin‘);
const extractTextPlugin = require("extract-text-webpack-plugin");
const glob = require(‘glob‘);//同步检查html
const PurifyCSSPlugin = require("purifycss-webpack");//去除多余的css样式的插件
var website ={
    publicPath:path.resolve(‘dist‘)
}
module.exports={
    entry:{
        entry1:‘./src/index1.js‘,
        entry2:‘./src/index2.js‘
    }, //多入口配置
    output:{
        path:path.resolve(__dirname,‘dist‘),//出口路径
        filename:‘[name].js‘,//多出口 name表示和对应的入口文件入口属性名一样
        publicPath:website.publicPath//公共路径
    },
    devServer:{
        //设置基本目录结构
        contentBase:path.resolve(__dirname,‘dist‘),
        //服务器的IP地址,可以使用IP也可以使用localhost
        host:‘localhost‘,
        //服务端压缩是否开启
        compress:true,
        //配置服务端口号
        port:8080
    },
    module:{
        rules:[
            {
                test:/\.css$/,
                //用于匹配处理文件的扩展名的表达式,这个选项是必须进行配置的;
                use: extractTextPlugin.extract({
                    fallback: "style-loader",
                    use:[ { loader: ‘css-loader‘, options: { importLoaders: 1 } },
                    ‘postcss-loader‘]
                  })//分离css文件配置
                // use:[‘style-loader‘,‘css-loader‘,‘postcss-loader‘],
                //loader名称,就是你要使用模块的名称,这个选项也必须进行配置,否则报错;
                //include/exclude:‘‘手动添加必须处理的文件(文件夹)或屏蔽不需要处理的文件(文件夹)(可选);
                //query:‘‘ 为loaders提供额外的设置选项(可选)。
            }
            /**
             * rules:[{
             * test:/\.css$/,
             * loader:[‘style-loader‘,‘css-loader‘]
             * 或者 use[{loader:"style-loader"},{loader:‘css-loader‘}]
             * }]
             *
             *
             */,
             {
                test: /\.js$/,//js5转6
                use: [{
                  loader: ‘babel-loader‘,
                  options: {
                     presets: [‘es2015‘]
                  }
                }],
                exclude: /node_modules/
              },{
                  test:/\.(png|jpe?g|gif|svg)(\?.*)?$/,
                  use:[{
                      loader:‘url-loader‘,//小于500000b的url-loader转换,大于的交给file-loader
                      options:{//url内置了file 只需要引url-loader 大于的会自动交给file处理
                          limit:500000, //将小于500000b的文件打成base64的格式写入js
                      }
                  }]
              },
              {
                test: /\.(htm|html)$/i,//img图片正确路径配置
                use:[ ‘html-withimg-loader‘]
              }

        ]
    },
    plugins:[
        new uglify(),
        new extractTextPlugin("/css/index.css"),//css样式分离后的路径
        new htmlPlugin({
            minify:{
                removeAttributeQuotes:true//是对html文件进行压缩,removeAttrubuteQuotes是却掉属性的双引号。
            },
            hash:true,//为了开发中js有缓存效果,所以加入hash,这样可以有效避免缓存JS。
            template:‘./src/index.html‘//是要打包的html模版路径和文件名称。

        }),
        new PurifyCSSPlugin({
            // Give paths to parse for rules. These should be absolute!
            paths: glob.sync(path.join(__dirname, ‘src/*.html‘)),
            })//用于删减多余的css样式
    ]
}

常用的包

{
  "name": "es6",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "webpack",
    "dev": "webpack-dev-server"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "babel-cli": "^6.26.0"
  },
  "devDependencies": {
    "autoprefixer": "^7.1.6",//css添加内核前缀
    "babel-core": "^6.26.0",//es5转换es6 方法1
    "babel-loader": "^7.1.2",//es5转es6  方法1
    "babel-preset-es2015": "^6.24.1",//es5转es6  方法1
    "css-loader": "^0.28.7",//css样式解析
    "extract-text-webpack-plugin": "^3.0.2",//css文件分离
    "file-loader": "^1.1.5",//图片等文件解析
    "html-webpack-plugin": "^2.30.1",//html自动被加载js 也就是html打包
    "html-withimg-loader": "^0.1.16",//img图片路径打包
    "postcss-loader": "^2.0.9",//为css添加内核前缀
    "style-loader": "^0.19.0",//css样式解析
    "url-loader": "^0.6.2",//图片等文件解析
    "webpack": "^3.8.1",
    "webpack-dev-server": "^2.9.5"//热更新模块
  }
}

postcss.config.js

module.exports = {
    plugins: [
        require(‘autoprefixer‘)
    ]
}

 .babelrc.js

{
    "presets": ["es2015"]
  }
//   {
//     "presets":["react","env"]
// }//通过转换为env将es5转换为es6
时间: 2024-11-13 06:38:12

webpack3.0+总结的相关文章

webpack-dev-server配置指南webpack3.0

最近正在研究webpack,听说webpack可以自己搭建一个小型的服务器(使用过vue-cli的朋友应该都见识到过),所以迫不及待的想要尝试一下.不过,在实际操作中发现,用webpack搭建服务器仍有不少坑,一方面是由于自己对文档的不熟悉,不了解webpack-dev-server的运作模式:另一方面,在翻阅了不少博客和文章后,发现不少配置实际上都跑不起来(有可能是版本的原因,也有可能是我自己配置的原因).所以我打算用webpack3.0把dev-server跑起来给大家演示一遍,顺便把一些配

四大维度解锁Webpack3.0前端工程化

四大维度解锁Webpack3.0前端工程化网盘地址:https://pan.baidu.com/s/1NBzFqMELoFxxvFtxp0YluQ 密码: pd36备用地址(腾讯微云):https://share.weiyun.com/50QY3pp 密码:d4uwwj 第1章 课程简介讲述课程背景,从前端开发的变化 到 前端工具的发展变化,介绍了课程内容,课程安排. 第2章 学习准备讲述模块化开发的思想.学习环境准备,webpack 的概况,版本更迭,核心概念等,为开始实践学习webpack

浅谈webpack3.0+

(1)webpack作用 1.前端为什么需要webpack? 现在的前端网页功能丰富,特别是SPA(single page web application 单页应用)技术流行后,JavaScript的复杂度增加和需要一大堆依赖包,还需要解决SCSS,Less……新增样式的扩展写法的编译工作.所以现代化的前端已经完全依赖于WebPack的辅助了. 2.什么是webpack? 简单理解就是打包用的,结合图进行理解 1.将.js(脚本文件)..jade(源于Node.js 的HTML高性能模板引擎).

四大维度解锁Webpack3.0工具全技能视频 Webpack教程

第1章 课程简介 讲述课程背景,从前端开发的变化 到 前端工具的发展变化,介绍了课程内容,课程安排. 第2章 学习准备 讲述模块化开发的思想.学习环境准备,webpack 的概况,版本更迭,核心概念等,为开始实践学习webpack 做准备. 第3章 由浅入深Webpack(1) 由一个个的实例组成,介绍webpack 在处理各种实例的下的配置,实例包括 Typescript Ecmascript Less 语言的预编译,讲解了 Webpack 提取公共代码.代码分割.动态import.魔法注释.

webpack-dev-server配置指南(使用webpack3.0)

在webpack.config.js中进行配置: const path = require("path");module.exports = { entyr:{ ....... //设置入口文件 }, output:{ ....... //设置出口文件 }, module:{ ....... //配置loader,注意使用rules而不是loaders }, plugins:[ ....... //注意是数组 ], devServer:{ //我们在这里对webpack-dev-ser

四大维度解锁Webpack3.0工具全技能

第1章 课程简介讲述课程背景,从前端开发的变化 到 前端工具的发展变化,介绍了课程内容,课程安排. 第2章 学习准备讲述模块化开发的思想.学习环境准备,webpack 的概况,版本更迭,核心概念等,为开始实践学习webpack 做准备. 第3章 由浅入深Webpack(1)由一个个的实例组成,介绍webpack 在处理各种实例的下的配置,实例包括 Typescript Ecmascript Less 语言的预编译,讲解了 Webpack 提取公共代码.代码分割.动态import.魔法注释.JS

webpack4.0 + react

webpack4.0 中删除了 DefinePlugin.module.loaders.NoErrorsPlugin.CommonsChunkPlugin.OccurenceOrderPlugin,将不再支持这也插件等: moudule.loader 在 webpack3.0 中进行文件的解析的时候我们的配置一般是: module: { rules: [ { test: /\.js|.jsx$/, loader: "babel-loader", query:{ presets:[&qu

了解下webpack的几个命令

[ webpack3.0.0刚刚出来  所以文章是跟着低版本 教程 操作熟悉  结果好多对不上喔] 六:了解下webpack的几个命令 webpack         // 最基本的启动webpack的方法 webpack -w      // 提供watch方法:实时进行打包更新 webpack -p      // 对打包后的文件进行压缩 webpack -d      // 提供source map,方便调式代码 我们下面来了解下 webpack -w 如下所示: 比如我在js文件里面随便

如何用webpack实现自动化的前端构建工作流

什么是自动化的前端构建流? 1. 自动补全css私有前缀,自动转化less\sass为css,自动转化es6\vue\jsx语法为js,自动打包小图片为base64以减少http请求,自动给js,css,甚至img加hash值,以避免浏览器缓存,自动合并压缩代码,自动刷新实时预览效果(甚至免刷新),可以按照自己喜欢的目录结构存放原始资源文件,为了方便手机等访问,不需要搭建apache.nginx等服务器实现http访问...... 如何快速开始 首先 git clone https://gith