美文网首页
学习webpack【第三章-核心概念1】

学习webpack【第三章-核心概念1】

作者: zzyo96 | 来源:发表于2019-09-25 09:18 被阅读0次

    一、loader

    二、plugin

    三、entry与output的基础配置

    四、SourceMap配置

    五、使用webpackDevServer 提升开发效率

    ——————————————

    一、什么是loader

    webpack默认只能打包js结尾的文件,如果需要打包如.jpg文件就需要相应的loader

    图片篇
    image.png image.png

    首先安装file-loader
    npm install file-loader -D
    然后在dist目录中会生成这个图片


    image.png

    打印出的就是在dist目录下的图片文件名

    image.png
    总结:webpack不能识别非js结尾的模块,因此需要借助loader提供打包方案进行打包

    此外,可以添加一些配置项


    image.png

    options的配置里 name属性是打包后的名称:为[name]为源文件的name,[ext]:源文件的后缀,[hash]唯一的hash值
    outputPath:是打包好后存放的目录为images/ ,最终会存放在dist/images中

    url-loader
    会将图片打包成一个base64文件打包到bundle.js中,注意当图片较小时这样做是非常好的选择, 因为可以减少http请求, 但是如果图片很大的时候就不要用这种方式了,可以用limit属性进行限制, 如下图 下雨10240字节(10kb)就会被打包成图片,如果小于10kb 才会被打包成base64编码文件

    image.png
    样式篇

    css loader


    image.png

    二、plugin让打包更便捷

    plugin 可以再webpack运行到某个时刻的时候帮你做一些事情。

    htmlWebpackPlugin

    这个插件会在打包结束后,自动生成一个html文件,并把打包生成的js文件自动引入到这个html文件中。可以 进行一些配置,如模板 template 定义以那个html文件为模板文件

    image.png
    cleanWebpackPlugin
    image.png

    这个作用是每次打包项目之前会自动删除dist目录,以免忘记手动删除而造成文件重复

    三、entry与output的基础配置

    entry


    image.png

    output
    [name] 代表原文件的名称,publicPath的内容会在输入的js文件前加上
    在这个例子中,最后会导出两个内容一模一样的js文件,一个是 http://cdn.com.cn/main.js 一个是http://cdn.com.cn/sub.js

    image.png

    四、SourceMap配置

    作用:

    如: 现在知道main.js 96行报错

    SourceMap是一个映射关系,它知道dist目录下main.js中某一行所对应的是src目录下index.js文件中的某一行

    现在就知道了是index.js中第一行代码出错了

    使用:

    无需安装

    image.png

    在开发环境中建议这样写,这是提示全并且速度快的方式

    image.png

    如果是生产环境 建议这样写

    image.png

    五、使用webpackDevServer 提升开发效率

    作用:

    当修改src中的源代码,dist目录会自动打包 ,直接刷新就可以看到变化,无需手动打包

    实现方式
    1. 修改package.json文件 在后面加--watch
      这样写以后,当修改代码webpack会自动感知到, 可以自动进行打包,但不会开启服务器也就是没办法发送ajax请求,而且还要手动刷新浏览器
    image.png

    2.使用webpackDevServer 会开启服务器且无需手动刷新浏览器,直接保存页面就能感知到

    2.1安装 npm install webpackDevServer

    2.2在webpack.config.json中进行配置
    在根目录下的dist文件中启一个服务器

    image.png

    2.3 在package.json 进行配置


    image.png

    然后执行npm run start 就能够开启一个服务了

    除此以外 还有其他一些配置 如


    image.png

    open 为 true 是自动打开一个浏览器
    port 是端口号

    相关文章

      网友评论

          本文标题:学习webpack【第三章-核心概念1】

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