项目地址:https://github.com/sayll/ie-webpack-start
ie-webpack-start
IE 9+ 用户请转至:avalon-webpack-start
React 用户请转至:react-webpack-start
重要
由于webpack不支持低版本IE下启动服务实时测试,必须通过打包才知道测试结果。
所以请用户自行在其他浏览器编写测试,最后回跑测试打包的IE
代码压缩导致无法兼容低版本IE,故取消代码压缩功能。
如有使用如Jquery第三方库的同学,最好自行引用它的min版本,而不是通过打包形式。(否则:反而使包变大)
本项目只是为用户提供使用ES6新特性的可能,和简单方便的管理资源。其他扩展功能不在本项目的范围内。
目录简介
介绍
这个一个以webpack2为基础,启用tree-shaking新技术,为打包支持到低版本的webpack2
实验性脚手架。
本项目使用avalon2
作为演示框架。
关于【Webpack】
服务端使用Express。需要注意的是,只有一个目的那就是提供了
webpack-dev-middleware
和webpack-hot-middleware
(代码热替换)。使用自定义的Express程序替换webpack-dev-server,让它更容易实现universal 渲染和为了不使这个包过于庞大。针对不同的loader采用了多线程编译,极大的加快了编译速度。
可用ES6编译低版本IE代码【水有多深不得而知】
启动新技术tree-shaking
Babel被配置babel-plugin-transform-runtime可以让代码更优化。
关于【HTML】
支持单页应用和多页应用的混合开发。
自动引入页面的CSS和JS文件。无需手动设置URL。(所有文件hash的改变都会导致文件名改变,这里的资源引用全由内部自动完成)
关于【CSS】
css的模块化,预处理器的编译。(支持
sass,scss,less,postcss
)针对低版本浏览器和其他浏览器内核的特殊性,启用autoprefixer自动添加浏览器前缀
防缓存的hash规则
关于【JS】
支持ES5,ES6编写逻辑代码
由于兼容性问题只可使用AMD规范的
require
,无法使用import
和export
防缓存的hash规则
快速编译,自动刷新。
程序目录
├── 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 # 单元测试
项目启动
环境配置
为了把保证项目正常运行,请自行更新相关环境。
依赖配置
首先clone项目
$ git clone https://github.com/sayll/ie-webpack-start.git
$ cd ie-webpack-start
由于国内有一堵高墙的存在建议国内用户切换源地址:
$ npm run cnpm
以后请使用cnpm
替代npm
操作
下载依赖
-
请确保你的环境配置完成,然后就可以开始以下步骤
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
如果一切顺利,就能正常打开端口:http://localhost:3000/
命令说明
开发过程中,你用得最多的会是npm start
,但是这里还有很多其它的处理:
npm run <script> |
解释 |
---|---|
start |
启动3000端口服务,代码热替换开启。 |
build |
单纯打包资源,不会进行代码测试。 |
deploy |
删除旧文件,进行代码测试,打包相关文件(默认目录~/build)。 |
test |
开启Karma测试并生成覆盖率报告。(默认关闭:启动配置) |
visualizer |
打包资源分析 |
clean |
清除打包的文件 |
cnpm |
替换为淘宝镜像 |
开发使用
start
调试IE使用
build
发布使用
deploy
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。