博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
让webpack2兼容IE8以下代码
阅读量:5825 次
发布时间:2019-06-18

本文共 2814 字,大约阅读时间需要 9 分钟。

项目地址:

ie-webpack-start

 

IE 9+ 用户请转至:

React 用户请转至:

重要

由于webpack不支持低版本IE下启动服务实时测试,必须通过打包才知道测试结果。

所以请用户自行在其他浏览器编写测试,最后回跑测试打包的IE
代码压缩导致无法兼容低版本IE,故取消代码压缩功能。
如有使用如Jquery第三方库的同学,最好自行引用它的min版本,而不是通过打包形式。(否则:反而使包变大)
本项目只是为用户提供使用ES6新特性的可能,和简单方便的管理资源。其他扩展功能不在本项目的范围内。

目录简介

  1. 介绍

  2. 程序目录

  3. 项目启动

    • 环境配置

    • 依赖配置

    • 命令说明

  4. 使用手册

    • 基本

      • 创建HTML视图

      • 配置JS,CSS资源文件

    • 高级

      • 使用框架(avalon2)或库(jquery)

      • 引用字体图标Icon

      • 使用CSS预处理器、CDN或开启多文件路口main.js

      • 修改目录结构

    • 发布

  5. 更新日志

  6. 最重要的事情

介绍

这个一个以webpack2为基础,启用tree-shaking新技术,为打包支持到低版本的webpack2实验性脚手架。

本项目使用作为演示框架。

关于【Webpack】

  1. 服务端使用Express。需要注意的是,只有一个目的那就是提供了webpack-dev-middlewarewebpack-hot-middleware(代码热替换)。使用自定义的Express程序替换,让它更容易实现universal 渲染和为了不使这个包过于庞大。

  2. 针对不同的loader采用了多线程编译,极大的加快了编译速度。

  3. 可用ES6编译低版本IE代码【水有多深不得而知】

  4. 启动新技术tree-shaking

  5. 提供测试框架进行单元测试,代码覆盖率报告,可与和快速对接。【】

  6. Babel被配置可以让代码更优化。

关于【HTML】

  1. 支持单页应用和多页应用的混合开发。

  2. 自动引入页面的CSS和JS文件。无需手动设置URL。(所有文件hash的改变都会导致文件名改变,这里的资源引用全由内部自动完成)

关于【CSS】

  1. css的模块化,预处理器的编译。(支持sass,scss,less,postcss

  2. 针对低版本浏览器和其他浏览器内核的特殊性,启用自动添加浏览器前缀

  3. 可导入字体和字体图标,操作非常简单。(如)【配置文档】

  4. 防缓存的hash规则

关于【JS】

  1. 支持ES5,ES6编写逻辑代码

  2. 由于兼容性问题只可使用AMD规范的require,无法使用 importexport

  3. 防缓存的hash规则

  4. 快速编译,自动刷新。

程序目录

├── build                    # 所有打包配置项├── config                   # 项目配置文件│   ├── webpack              # webpack配置文件夹│   └── karma.conf.js        # karma配置文件├── server                   # Express 程序 (使用 webpack 中间件)│   └── main.js              # 服务端程序入口文件├── app                      # 程序源文件│   ├── html                 # 多页或单页应用的入口HTML│   └──  source               # 公共的资源文件│   ├    ├── css│   ├    ├── js│   ├    ├── font│   ├    └── img             │   ├── static               # 公共的静态资源文件(所有内部文件通过index.js引入,可配置全局变量。)│   └── view                 # 主路由和异步分割点│       └── index            # 匹配html文件夹中的index.html。(css,js文件名对应文件夹名,可直接打包无需单独引入)│           ├── index.js     # 直接与index.html匹配的入口文件,可以作为单页应用的入口,在内部定义自己的项目目录│           ├── index.css    # 如是多页应用,可设置对应的CSS文件,直接匹配。│           └── other **     # 页面的其他资源文件,通过index.js引入└── tests                    # 单元测试

项目启动

环境配置

  • 为了把保证项目正常运行,请自行更新相关环境。

  1. 安装

  2. 安装

  3. 安装(可选)

依赖配置

  1. 首先clone项目

$ git clone https://github.com/sayll/ie-webpack-start.git$ cd ie-webpack-start
  • 由于国内有一堵高墙的存在建议国内用户切换源地址:

$ npm run cnpm

以后请使用cnpm替代npm操作

  1. 下载依赖

  • 请确保你的环境配置完成,然后就可以开始以下步骤

    • npm 用户:

    $ npm install                   # Install project dependencies$ npm start                     # Compile and launch
    • cnpm 用户:

    $ cnpm install                   # Install project dependencies$ npm start                     # Compile and launch
    • Yarn 用户:

    $ yarn                          # Install project dependencies$ yarn start                    # Compile and launch

    如果一切顺利,就能正常打开端口:

命令说明

开发过程中,你用得最多的会是npm start,但是这里还有很多其它的处理:

npm run <script> 解释
start 启动3000端口服务,代码热替换开启。
build 单纯打包资源,不会进行代码测试。
deploy 删除旧文件,进行代码测试,打包相关文件(默认目录~/build)。
test 开启Karma测试并生成覆盖率报告。(默认关闭:)
visualizer 打包资源分析
clean 清除打包的文件
cnpm 替换为淘宝镜像
  • 开发使用 start

  • 调试IE使用 build

  • 发布使用deploy

转载地址:http://amsdx.baihongyu.com/

你可能感兴趣的文章
hdu 1236 排名
查看>>
PHP面向对象深入研究之【继承】,减少代码重复
查看>>
RBAC权限管理
查看>>
此博客不再发表对自己私事的看法
查看>>
导致Asp.Net站点重启的10个原因
查看>>
【PMP】Head First PMP 学习笔记 第一章 引言
查看>>
抓住云机遇编排工作 搞定复杂IT工作流
查看>>
MYSQL的longtext字段能放多少数据?
查看>>
MTK 平台上如何给 camera 添加一种 preview size
查看>>
云计算最大难处
查看>>
关于数据分析思路的4点心得
查看>>
Memcached安装与配置
查看>>
美团数据仓库的演进
查看>>
SAP被评为“大数据”预测分析领军企业
查看>>
联想企业网盘张跃华:让文件创造业务价值
查看>>
记录一次蚂蚁金服前端电话面试
查看>>
直播源码开发视频直播平台,不得不了解的流程
查看>>
Ubuntu上的pycrypto给出了编译器错误
查看>>
聊聊flink的RestClientConfiguration
查看>>
在CentOS上搭建git仓库服务器以及mac端进行克隆和提交到远程git仓库
查看>>