A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在网页中会引用哪些常见的静态资源?
  • JS

  • .js  .jsx  .coffee  .ts(TypeScript  类 C# 语言)

  • CSS

  • .css  .less   .sass  .scss

  • Images

  • .jpg   .png   .gif   .bmp   .svg

  • 字体文件(Fonts)

  • .svg   .ttf   .eot   .woff   .woff2

  • 模板文件

  • .ejs   .jade  .vue【这是在webpack中定义组件的方式,推荐这么用】
  • 网页中引入的静态资源多了以后有什么问题???
    • 网页加载速度慢, 因为 我们要发起很多的二次请求;
    • 要处理错综复杂的依赖关系

    如何解决上述两个问题
    • 合并、压缩、精灵图、图片的Base64编码
    • 可以使用之前学过的requireJS、也可以使用webpack可以解决各个包之间的复杂依赖关系;

    什么是webpack?
    webpack 是前端的一个项目构建工具,它是基于 Node.js 开发出来的一个前端工具;
    如何完美实现上述的2种解决方案
    • 使用Gulp, 是基于 task 任务的;
    • 使用Webpack, 是基于整个项目进行构建的;

    • 借助于webpack这个前端自动化构建工具,可以完美实现资源的合并、打包、压缩、混淆等诸多功能。
    • 根据官网的图片介绍webpack打包的过程

    webpack安装的两种方式
    • 运行npm i webpack -g全局安装webpack,这样就能在全局使用webpack的命令
    • 在项目根目录中运行npm i webpack --save-dev安装到项目依赖中

    初步使用webpack打包构建列表隔行变色案例
    • 运行npm init初始化项目,使用npm管理项目中的依赖包
    • 创建项目基本的目录结构
    • 使用cnpm i jquery --save安装jquery类库
    • 创建main.js并书写各行变色的代码逻辑:
    • [AppleScript] 纯文本查看 复制代码
      // 导入jquery类库
          import $ from 'jquery'
      
          // 设置偶数行背景色,索引从0开始,0是偶数
          $('#list li:even').css('backgroundColor','lightblue');
          // 设置奇数行背景色
          $('#list li:odd').css('backgroundColor','pink');
      • 直接在页面上引用main.js会报错,因为浏览器不认识import这种高级的JS语法,需要使用webpack进行处理,webpack默认会把这种高级的语法转换为低级的浏览器能识别的语法;
      • 运行webpack 入口文件路径 输出文件路径对main.js进行处理:
      • [AppleScript] 纯文本查看 复制代码
        webpack src/js/main.js dist/bundle.js
      • 使用webpack的配置文件简化打包时候的命令
        • 在项目根目录中创建webpack.config.js
        • 由于运行webpack命令的时候,webpack需要指定入口文件和输出文件的路径,所以,我们需要在webpack.config.js中配置这两个路径:
        • [AppleScript] 纯文本查看 复制代码
           // 导入处理路径的模块
              var path = require('path');
          
              // 导出一个配置对象,将来webpack在启动的时候,会默认来查找webpack.config.js,并读取这个文件中导出的配置对象,来进行打包处理
              module.exports = {
                  entry: path.resolve(__dirname, 'src/js/main.js'), // 项目入口文件
                  output: { // 配置输出选项
                      path: path.resolve(__dirname, 'dist'), // 配置输出的路径
                      filename: 'bundle.js' // 配置输出的文件名
                  }
              }






0 个回复

您需要登录后才可以回帖 登录 | 加入黑马