├── 2. 常用扩展 ├── 2-2. 自动生成页面 │ ├── src │ │ ├── a.js │ │ └── index.js │ ├── 课件.md │ ├── package.json │ ├── public │ │ └── index.html │ ├── dist │ │ ├── a.html │ │ └── home.html │ └── webpack.config.js ├── 2-1. 清除输出目录 │ ├── 课件.md │ ├── src │ │ └── index.js │ ├── webpack.config.js │ └── package.json ├── 2-3. 复制静态资源 │ ├── 课件.md │ ├── src │ │ └── index.js │ ├── dist │ │ ├── img │ │ │ └── webpack.png │ │ └── index.html │ ├── public │ │ ├── img │ │ │ └── webpack.png │ │ └── index.html │ ├── package.json │ └── webpack.config.js ├── 2-8. [练习]区域查询 │ ├── 静态页面 │ │ ├── img │ │ │ └── china.jpg │ │ ├── css │ │ │ ├── detail.css │ │ │ ├── list.css │ │ │ └── reset.css │ │ └── detail.html │ ├── 工程 │ │ ├── public │ │ │ ├── img │ │ │ │ └── china.jpg │ │ │ ├── css │ │ │ │ ├── detail.css │ │ │ │ ├── list.css │ │ │ │ └── reset.css │ │ │ ├── detail.html │ │ │ └── list.html │ │ ├── webpack.prod.js │ │ ├── webpack.dev.js │ │ ├── src │ │ │ ├── util │ │ │ │ └── areaService.js │ │ │ ├── detail │ │ │ │ └── index.js │ │ │ └── list │ │ │ │ └── index.js │ │ ├── webpack.config.js │ │ ├── package.json │ │ └── webpack.base.js │ └── api.md ├── 2-5. 普通文件处理 │ ├── src │ │ ├── assets │ │ │ ├── webpack.png │ │ │ └── sub │ │ │ │ └── webpack.png │ │ └── index.js │ ├── dist │ │ ├── imgs │ │ │ └── webpack.ba6ae.png │ │ └── index.html │ ├── 课件.md │ ├── package.json │ ├── public │ │ └── index.html │ └── webpack.config.js ├── 2-6. 解决路径问题 │ ├── src │ │ ├── assets │ │ │ ├── webpack.png │ │ │ └── sub │ │ │ │ └── webpack.png │ │ └── index.js │ ├── dist │ │ ├── imgs │ │ │ └── webpack.ba6ae.png │ │ └── html │ │ │ └── index.html │ ├── 课件.md │ ├── package.json │ ├── public │ │ └── index.html │ └── webpack.config.js ├── 2-4. 开发服务器 │ ├── src │ │ └── index.js │ ├── package.json │ ├── public │ │ └── index.html │ ├── webpack.config.js │ └── 课件.md └── 2-7. webpack内置插件 │ ├── src │ └── index.js │ ├── package.json │ ├── webpack.config.js │ └── 课件.md ├── 1. webpack核心功能 ├── 1-6. 配置文件 │ ├── 123.js │ ├── src │ │ └── main.js │ ├── webpack.config.js │ ├── package.json │ └── 课件.md ├── 1-11. loader │ ├── src │ │ ├── a.js │ │ └── index.js │ ├── loaders │ │ ├── loader1.js │ │ ├── loader2.js │ │ ├── loader3.js │ │ ├── loader4.js │ │ └── test-loader.js │ ├── assets │ │ ├── 2020-01-13-09-28-52.png │ │ ├── 2020-01-13-09-29-08.png │ │ ├── 2020-01-13-09-35-44.png │ │ ├── 2020-01-13-10-29-54.png │ │ └── 2020-01-13-10-39-24.png │ ├── package.json │ ├── webpack.config.js │ └── 课件.md ├── 1-16. 区分环境 │ ├── src │ │ └── index.js │ ├── webpack.pro.js │ ├── webpack.dev.js │ ├── webpack.base.js │ ├── package.json │ ├── webpack.config.js │ ├── 课件.md │ └── dist │ │ └── scripts │ │ └── main-b1728.js ├── 1-15. [练习]添加文件列表 │ ├── src │ │ ├── a.js │ │ └── index.js │ ├── dist │ │ ├── 文件列表.md │ │ └── filelist.txt │ ├── webpack.config.js │ ├── package.json │ └── plugins │ │ └── FileListPlugin.js ├── 1-17. 其他细节配置 │ ├── src │ │ ├── index.js │ │ ├── other.js │ │ └── a │ │ │ └── b │ │ │ └── c │ │ │ └── d.js │ ├── abc │ │ └── jquery.js │ ├── webpack.config.js │ ├── package.json │ └── dist │ │ └── index.html ├── 1-9. 入口和出口 │ ├── src │ │ ├── a.js │ │ └── index.js │ ├── assets │ │ └── 2020-01-09-15-51-07.png │ ├── node │ │ ├── dirname.js │ │ ├── sub │ │ │ └── dirname.js │ │ └── pathtest.js │ ├── package.json │ ├── 课件.md │ ├── target │ │ └── index.html │ └── webpack.config.js ├── 1-1. 如何在浏览器端实现模块化 │ ├── modules │ │ ├── test.txt │ │ ├── a.js │ │ ├── b.js │ │ └── index.js │ ├── assets │ │ └── 2020-01-07-05-06-11.png │ ├── package.json │ ├── index.html │ ├── package-lock.json │ └── 课件.md ├── 1-14. plugin │ ├── src │ │ └── index.js │ ├── assets │ │ ├── 2020-01-15-12-45-16.png │ │ └── 2020-01-15-12-49-26.png │ ├── webpack.config.js │ ├── plugins │ │ └── MyPlugin.js │ ├── package.json │ └── 课件.md ├── 1-4. [练习]酷炫的数字查找特效 │ ├── src │ │ ├── index.js │ │ ├── util │ │ │ ├── radColor.js │ │ │ ├── isPrime.js │ │ │ └── number.js │ │ └── page │ │ │ ├── event.js │ │ │ └── appendNumber.js │ ├── package.json │ └── dist │ │ └── index.html ├── 1-8. 编译过程 │ ├── src │ │ ├── b.js │ │ ├── a.js │ │ └── index.js │ ├── webpack.config.js │ ├── assets │ │ ├── 2020-01-09-10-26-15.png │ │ ├── 2020-01-09-10-53-28.png │ │ ├── 2020-01-09-11-54-08.png │ │ ├── 2020-01-09-12-32-38.png │ │ ├── 2020-01-09-12-35-05.png │ │ ├── 2020-01-09-12-39-16.png │ │ ├── 2020-01-09-12-43-52.png │ │ ├── 2020-01-09-12-47-43.png │ │ ├── 2020-01-09-12-54-34.png │ │ └── 2020-01-09-15-51-07.png │ ├── package.json │ └── 课件.md ├── 1-2. webpack的安装和使用 │ ├── src │ │ ├── a.js │ │ ├── b.js │ │ ├── index.js │ │ └── c.js │ ├── dist │ │ └── index.html │ ├── package.json │ └── 课件.md ├── 1-7. devtool配置 │ ├── src │ │ ├── index.js │ │ └── a.js │ ├── webpack.config.js │ ├── assets │ │ ├── 2020-01-08-16-38-26.png │ │ ├── 2020-01-08-16-58-06.png │ │ └── 2020-01-08-17-01-13.png │ ├── dist │ │ ├── index.html │ │ └── main.js │ ├── package.json │ └── 课件.md ├── 1-5. 编译结果分析 │ ├── src │ │ ├── a.js │ │ └── index.js │ ├── dist │ │ ├── abc.js │ │ ├── index.html │ │ ├── main.js │ │ └── my-main.js │ └── package.json ├── 1-12. [练习]处理样式 │ ├── src │ │ ├── assets │ │ │ └── index.css │ │ └── index.js │ ├── webpack.config.js │ ├── loaders │ │ └── style-loader.js │ ├── dist │ │ └── index.html │ └── package.json ├── 1-3. 模块化兼容性 │ ├── src │ │ ├── commonjsa.js │ │ ├── es6a.js │ │ └── index.js │ ├── assets │ │ ├── 2020-01-07-07-50-09.png │ │ ├── 2020-01-07-07-53-45.png │ │ ├── 2020-01-07-07-54-25.png │ │ └── 2020-01-07-07-55-54.png │ ├── package.json │ └── 课件.md ├── 1-13. [练习]处理图片 │ ├── dist │ │ ├── img-1dd36.png │ │ └── index.html │ ├── src │ │ ├── assets │ │ │ └── webpack.png │ │ └── index.js │ ├── package.json │ ├── webpack.config.js │ └── loaders │ │ └── img-loader.js └── 1-10. 入口和出口的最佳实践 │ ├── assets │ ├── 2020-01-10-12-00-28.png │ ├── 2020-01-10-12-38-03.png │ └── 2020-01-10-12-44-13.png │ └── 课件.md ├── 3. css工程化 ├── 3-6. 预编译器less │ ├── css │ │ ├── abc.css │ │ ├── theme.less │ │ ├── index.css │ │ ├── var.less │ │ ├── index.less │ │ ├── common.less │ │ ├── index copy 2.less │ │ └── index copy.less │ ├── assets │ │ ├── 2020-02-03-11-48-45.png │ │ └── 2020-02-03-11-50-05.png │ ├── package.json │ ├── test.html │ └── 课件.md ├── 3-2. 利用webpack拆分css │ ├── src │ │ ├── banner │ │ │ ├── styles │ │ │ │ ├── banner.css │ │ │ │ └── other.css │ │ │ └── index.js │ │ ├── assets │ │ │ ├── pager.css │ │ │ ├── bg.png │ │ │ └── banner.css │ │ └── index.js │ ├── webpack.config.js │ ├── package.json │ └── 课件.md ├── 3-10. 抽离css文件 │ ├── src │ │ ├── other.js │ │ ├── assets │ │ │ ├── b.css │ │ │ ├── a.css │ │ │ ├── img │ │ │ │ └── china.jpg │ │ │ └── index.css │ │ └── index.js │ ├── public │ │ └── index.html │ ├── package.json │ ├── 课件.md │ └── webpack.config.js ├── 3-8. PostCss │ ├── .browserslistrc │ ├── css │ │ ├── out.css │ │ ├── source.pcss │ │ ├── source copy 2.pcss │ │ ├── source copy 3.pcss │ │ ├── source copy.pcss │ │ └── source copy 4.pcss │ ├── .stylelintrc │ ├── assets │ │ ├── postcss-workflow.png │ │ ├── 2020-02-04-14-31-33.png │ │ ├── 2020-02-04-14-37-51.png │ │ └── 2020-02-05-14-37-11.png │ ├── postcss.config.js │ ├── package.json │ └── test.html ├── 3-7. 在webpack中使用less │ ├── src │ │ ├── assets │ │ │ ├── a.css │ │ │ └── index.less │ │ └── index.js │ ├── public │ │ └── index.html │ ├── package.json │ └── webpack.config.js ├── 3-9. 在webpack中使用postcss │ ├── .browserslistrc │ ├── src │ │ ├── index.js │ │ └── assets │ │ │ └── index.pcss │ ├── .stylelintrc │ ├── postcss.config.js │ ├── public │ │ └── index.html │ ├── webpack.config.js │ └── package.json ├── 3-5. css module │ ├── src │ │ ├── assets │ │ │ ├── style2.css │ │ │ └── style1.css │ │ └── index.js │ ├── assets │ │ ├── 2020-01-31-13-54-37.png │ │ ├── 2020-01-31-14-00-56.png │ │ ├── 2020-01-31-14-04-11.png │ │ └── 2020-01-31-14-08-49.png │ ├── public │ │ └── index.html │ ├── package.json │ ├── webpack.config.js │ └── 课件.md ├── 3-3. BEM │ ├── assets │ │ └── 2020-01-31-09-53-31.png │ ├── 课件.md │ ├── index.css │ └── index.html ├── 3-4. css-in-js │ ├── scripts │ │ ├── css │ │ │ ├── common.js │ │ │ └── util.js │ │ └── index.js │ ├── index.html │ └── 课件.md └── 3-1. css工程化概述 │ └── 课件.md ├── 5. 性能优化 ├── 5-4. 热替换 │ ├── src │ │ ├── a.js │ │ ├── index.css │ │ └── index.js │ ├── assets │ │ ├── 2020-02-21-14-20-49.png │ │ ├── 2020-02-21-14-22-32.png │ │ └── 2020-02-21-14-34-05.png │ ├── public │ │ └── index.html │ ├── webpack.config.js │ ├── package.json │ └── 课件.md ├── 5-6. 自动分包 │ ├── src │ │ ├── common.js │ │ ├── page1.css │ │ ├── common.css │ │ ├── page2.css │ │ ├── page1.js │ │ └── page2.js │ ├── assets │ │ └── 2020-02-24-17-19-47.png │ ├── public │ │ └── index.html │ ├── package.json │ └── webpack.config.js ├── 5-7. 代码压缩 │ ├── src │ │ ├── index.css │ │ └── index.js │ ├── index.js │ ├── package.json │ ├── webpack.config.js │ └── 课件.md ├── 5-8. tree shaking │ ├── src │ │ ├── common.js │ │ ├── index.css │ │ ├── index.js │ │ └── myMath.js │ ├── public │ │ └── index.html │ ├── package.json │ ├── webpack.config.js │ └── 课件.md ├── 5-9. 懒加载 │ ├── src │ │ ├── util.js │ │ └── index.js │ ├── public │ │ └── index.html │ ├── webpack.config.js │ └── package.json ├── 5-12. gzip │ ├── src │ │ ├── util.js │ │ └── index.js │ ├── assets │ │ ├── 2020-02-28-15-37-26.png │ │ └── 2020-02-28-15-41-44.png │ ├── 课件.md │ ├── webpack.config.js │ └── package.json ├── 5-2. 减少模块解析 │ ├── src │ │ ├── index.js │ │ └── test.js │ ├── assets │ │ ├── 2020-02-13-16-26-41.png │ │ └── 2020-02-13-16-28-10.png │ ├── webpack.config.js │ ├── package.json │ └── 课件.md ├── 5-3. 优化loader性能 │ ├── .browserslistrc │ ├── test.js │ ├── assets │ │ └── 2020-02-21-13-32-36.png │ ├── src │ │ ├── index.js │ │ └── loader.js │ ├── .babelrc │ ├── webpack.config.js │ ├── md │ │ ├── custom.less │ │ └── parser.js │ ├── package.json │ └── 课件.md ├── 5-10. ESLint │ ├── src │ │ └── index.js │ ├── .eslintrc.json │ ├── package.json │ └── 课件.md ├── 5-11. bundle analyzer │ ├── src │ │ ├── util.js │ │ └── index.js │ ├── webpack.config.js │ └── package.json ├── 性能优化.xmind ├── 5-5. 手动分包 │ ├── assets │ │ └── 2020-02-24-13-24-57.png │ ├── src │ │ ├── index.js │ │ └── other.js │ ├── dll │ │ ├── jquery.manifest.json │ │ └── lodash.manifest.json │ ├── public │ │ └── index.html │ ├── package.json │ ├── webpack.dll.config.js │ └── webpack.config.js └── 5-1. 性能优化概述 │ ├── assets │ └── 2020-02-12-09-53-01.png │ └── 课件.md ├── 6. 补充和案例 ├── 6-1. [扩展]不确定的动态依赖 │ ├── src │ │ ├── utils │ │ │ ├── 1.css │ │ │ ├── d.js │ │ │ ├── a.js │ │ │ ├── b.js │ │ │ ├── c.js │ │ │ └── index.js │ │ └── index.js │ ├── webpack.config.js │ └── package.json ├── 6-6. 搭建全栈应用 │ └── 说明.md ├── 6-3. [扩展]搭建vue单页应用 │ └── 说明.md ├── 6-4. [扩展]搭建React单页应用 │ └── 说明.md ├── 6-2. 搭建多页应用 │ └── 说明.md └── 6-5. [扩展]搭建Node应用 │ └── 说明.md ├── .eslintignore ├── 4. js兼容性 ├── 4-1. babel的安装和使用 │ ├── js │ │ ├── a.js │ │ └── b.js │ ├── .babelrc │ ├── assets │ │ ├── 2020-02-07-10-12-01.png │ │ ├── 2020-02-07-10-25-56.png │ │ └── 2020-02-07-10-27-30.png │ ├── package.json │ └── 课件.md ├── 4-2. babel预设 │ ├── js │ │ └── index.js │ ├── .browserslistrc │ ├── .babelrc │ ├── package.json │ └── 课件.md ├── 4-3. babel插件 │ ├── .browserslistrc │ ├── js │ │ ├── index.js │ │ ├── index copy.js │ │ ├── index copy 2.js │ │ └── index copy 3.js │ ├── .babelrc │ ├── package.json │ └── 课件.md ├── 4-4. 在webpack中使用babel │ ├── .browserslistrc │ ├── .babelrc │ ├── src │ │ └── index.js │ ├── webpack.config.js │ └── package.json ├── 4-6. [扩展]async和await的转换 │ ├── source.js │ ├── package.json │ ├── package-lock.json │ └── target.js └── 4-5. [扩展]对类的转换 │ └── source.js └── .gitignore /2. 常用扩展/2-2. 自动生成页面/src/a.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /1. webpack核心功能/1-6. 配置文件/123.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /1. webpack核心功能/1-11. loader/src/a.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /1. webpack核心功能/1-16. 区分环境/src/index.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /3. css工程化/3-6. 预编译器less/css/abc.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /1. webpack核心功能/1-15. [练习]添加文件列表/src/a.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /1. webpack核心功能/1-17. 其他细节配置/src/index.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /1. webpack核心功能/1-17. 其他细节配置/src/other.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /5. 性能优化/5-4. 热替换/src/a.js: -------------------------------------------------------------------------------- 1 | export default "d" -------------------------------------------------------------------------------- /6. 补充和案例/6-1. [扩展]不确定的动态依赖/src/utils/1.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | **/dist/**/*.js 2 | node_modules -------------------------------------------------------------------------------- /2. 常用扩展/2-1. 清除输出目录/课件.md: -------------------------------------------------------------------------------- 1 | clean-webpack-plugin -------------------------------------------------------------------------------- /2. 常用扩展/2-2. 自动生成页面/课件.md: -------------------------------------------------------------------------------- 1 | html-webpack-plugin -------------------------------------------------------------------------------- /2. 常用扩展/2-3. 复制静态资源/课件.md: -------------------------------------------------------------------------------- 1 | copy-webpack-plugin -------------------------------------------------------------------------------- /4. js兼容性/4-1. babel的安装和使用/js/a.js: -------------------------------------------------------------------------------- 1 | const a = 2; -------------------------------------------------------------------------------- /1. webpack核心功能/1-9. 入口和出口/src/a.js: -------------------------------------------------------------------------------- 1 | console.log("aaaa") -------------------------------------------------------------------------------- /2. 常用扩展/2-1. 清除输出目录/src/index.js: -------------------------------------------------------------------------------- 1 | console.log("ac") -------------------------------------------------------------------------------- /3. css工程化/3-6. 预编译器less/css/theme.less: -------------------------------------------------------------------------------- 1 | @danger: red; -------------------------------------------------------------------------------- /4. js兼容性/4-1. babel的安装和使用/js/b.js: -------------------------------------------------------------------------------- 1 | const a = 1; 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | cache 4 | .DS_Store -------------------------------------------------------------------------------- /1. webpack核心功能/1-15. [练习]添加文件列表/src/index.js: -------------------------------------------------------------------------------- 1 | require("./a") -------------------------------------------------------------------------------- /1. webpack核心功能/1-9. 入口和出口/src/index.js: -------------------------------------------------------------------------------- 1 | console.log("index") -------------------------------------------------------------------------------- /3. css工程化/3-2. 利用webpack拆分css/src/banner/styles/banner.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /3. css工程化/3-2. 利用webpack拆分css/src/banner/styles/other.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /5. 性能优化/5-6. 自动分包/src/common.js: -------------------------------------------------------------------------------- 1 | module.exports = "common" -------------------------------------------------------------------------------- /1. webpack核心功能/1-17. 其他细节配置/src/a/b/c/d.js: -------------------------------------------------------------------------------- 1 | require("@/other") -------------------------------------------------------------------------------- /1. webpack核心功能/1-6. 配置文件/src/main.js: -------------------------------------------------------------------------------- 1 | console.log("index") 2 | -------------------------------------------------------------------------------- /2. 常用扩展/2-2. 自动生成页面/src/index.js: -------------------------------------------------------------------------------- 1 | console.log("asdfasdfasfd") -------------------------------------------------------------------------------- /2. 常用扩展/2-3. 复制静态资源/src/index.js: -------------------------------------------------------------------------------- 1 | console.log("asdfasdfasfd") -------------------------------------------------------------------------------- /3. css工程化/3-10. 抽离css文件/src/other.js: -------------------------------------------------------------------------------- 1 | import "./assets/b.css" -------------------------------------------------------------------------------- /6. 补充和案例/6-1. [扩展]不确定的动态依赖/src/utils/d.js: -------------------------------------------------------------------------------- 1 | module.exports = "d"; -------------------------------------------------------------------------------- /1. webpack核心功能/1-1. 如何在浏览器端实现模块化/modules/test.txt: -------------------------------------------------------------------------------- 1 | asdfasdfasfasfas -------------------------------------------------------------------------------- /1. webpack核心功能/1-14. plugin/src/index.js: -------------------------------------------------------------------------------- 1 | console.log("aasdfasfasdf") -------------------------------------------------------------------------------- /1. webpack核心功能/1-17. 其他细节配置/abc/jquery.js: -------------------------------------------------------------------------------- 1 | module.exports = "jquery" -------------------------------------------------------------------------------- /1. webpack核心功能/1-4. [练习]酷炫的数字查找特效/src/index.js: -------------------------------------------------------------------------------- 1 | import "./page/event" -------------------------------------------------------------------------------- /5. 性能优化/5-6. 自动分包/src/page1.css: -------------------------------------------------------------------------------- 1 | .red { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /5. 性能优化/5-7. 代码压缩/src/index.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background: #000; 3 | } -------------------------------------------------------------------------------- /5. 性能优化/5-8. tree shaking/src/common.js: -------------------------------------------------------------------------------- 1 | var n = Math.random(); 2 | -------------------------------------------------------------------------------- /5. 性能优化/5-9. 懒加载/src/util.js: -------------------------------------------------------------------------------- 1 | export { chunk } from "lodash-es"; 2 | -------------------------------------------------------------------------------- /3. css工程化/3-10. 抽离css文件/src/assets/b.css: -------------------------------------------------------------------------------- 1 | .b{ 2 | color: green; 3 | } -------------------------------------------------------------------------------- /4. js兼容性/4-2. babel预设/js/index.js: -------------------------------------------------------------------------------- 1 | async function Test(){ 2 | 3 | } -------------------------------------------------------------------------------- /5. 性能优化/5-12. gzip/src/util.js: -------------------------------------------------------------------------------- 1 | export { chunk } from "lodash-es"; 2 | -------------------------------------------------------------------------------- /5. 性能优化/5-6. 自动分包/src/common.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: #000; 3 | } 4 | -------------------------------------------------------------------------------- /5. 性能优化/5-6. 自动分包/src/page2.css: -------------------------------------------------------------------------------- 1 | .green { 2 | color: green; 3 | } 4 | -------------------------------------------------------------------------------- /5. 性能优化/5-7. 代码压缩/index.js: -------------------------------------------------------------------------------- 1 | var a=1;"boolean"==typeof a&&console.log("a"); -------------------------------------------------------------------------------- /6. 补充和案例/6-1. [扩展]不确定的动态依赖/src/utils/a.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = "a"; 3 | -------------------------------------------------------------------------------- /6. 补充和案例/6-1. [扩展]不确定的动态依赖/src/utils/b.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = "b"; 3 | -------------------------------------------------------------------------------- /6. 补充和案例/6-1. [扩展]不确定的动态依赖/src/utils/c.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = "c"; 3 | -------------------------------------------------------------------------------- /6. 补充和案例/6-6. 搭建全栈应用/说明.md: -------------------------------------------------------------------------------- 1 | 见:https://github.com/yjisme/node-vue-webpack -------------------------------------------------------------------------------- /1. webpack核心功能/1-8. 编译过程/src/b.js: -------------------------------------------------------------------------------- 1 | console.log("b") 2 | module.exports = "b"; -------------------------------------------------------------------------------- /3. css工程化/3-2. 利用webpack拆分css/src/banner/index.js: -------------------------------------------------------------------------------- 1 | import "./styles/banner.css" -------------------------------------------------------------------------------- /3. css工程化/3-8. PostCss/.browserslistrc: -------------------------------------------------------------------------------- 1 | last 3 version 2 | > 1% 3 | not ie <= 8 -------------------------------------------------------------------------------- /3. css工程化/3-8. PostCss/css/out.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: #f40; 3 | } 4 | -------------------------------------------------------------------------------- /4. js兼容性/4-2. babel预设/.browserslistrc: -------------------------------------------------------------------------------- 1 | last 3 version 2 | > 1% 3 | not ie <= 8 -------------------------------------------------------------------------------- /4. js兼容性/4-3. babel插件/.browserslistrc: -------------------------------------------------------------------------------- 1 | last 3 version 2 | > 1% 3 | not ie <= 8 -------------------------------------------------------------------------------- /5. 性能优化/5-2. 减少模块解析/src/index.js: -------------------------------------------------------------------------------- 1 | import $ from "./test" 2 | console.log($); -------------------------------------------------------------------------------- /5. 性能优化/5-3. 优化loader性能/.browserslistrc: -------------------------------------------------------------------------------- 1 | last 3 version 2 | > 1% 3 | not ie <= 8 -------------------------------------------------------------------------------- /6. 补充和案例/6-3. [扩展]搭建vue单页应用/说明.md: -------------------------------------------------------------------------------- 1 | 见:https://github.com/yjisme/vue-webpack 2 | -------------------------------------------------------------------------------- /3. css工程化/3-7. 在webpack中使用less/src/assets/a.css: -------------------------------------------------------------------------------- 1 | .abc { 2 | color: green; 3 | } -------------------------------------------------------------------------------- /3. css工程化/3-8. PostCss/css/source.pcss: -------------------------------------------------------------------------------- 1 | body { 2 | background: #f40; 3 | } 4 | -------------------------------------------------------------------------------- /4. js兼容性/4-3. babel插件/js/index.js: -------------------------------------------------------------------------------- 1 | class A { 2 | method() { 3 | 4 | } 5 | } -------------------------------------------------------------------------------- /5. 性能优化/5-10. ESLint/src/index.js: -------------------------------------------------------------------------------- 1 | var foo = Math.random(); 2 | if (foo) foo++; 3 | -------------------------------------------------------------------------------- /5. 性能优化/5-11. bundle analyzer/src/util.js: -------------------------------------------------------------------------------- 1 | export { chunk } from "lodash-es"; 2 | -------------------------------------------------------------------------------- /5. 性能优化/5-2. 减少模块解析/src/test.js: -------------------------------------------------------------------------------- 1 | import $ from "jquery" 2 | 3 | export default $; -------------------------------------------------------------------------------- /6. 补充和案例/6-4. [扩展]搭建React单页应用/说明.md: -------------------------------------------------------------------------------- 1 | 见:https://github.com/yjisme/react-webpack 2 | -------------------------------------------------------------------------------- /1. webpack核心功能/1-2. webpack的安装和使用/src/a.js: -------------------------------------------------------------------------------- 1 | require("./b") 2 | console.log("module a") -------------------------------------------------------------------------------- /1. webpack核心功能/1-2. webpack的安装和使用/src/b.js: -------------------------------------------------------------------------------- 1 | import "./c" 2 | 3 | console.log("module a") -------------------------------------------------------------------------------- /1. webpack核心功能/1-7. devtool配置/src/index.js: -------------------------------------------------------------------------------- 1 | require("./a") 2 | console.log("index module") -------------------------------------------------------------------------------- /3. css工程化/3-9. 在webpack中使用postcss/.browserslistrc: -------------------------------------------------------------------------------- 1 | last 3 version 2 | > 1% 3 | not ie <= 8 -------------------------------------------------------------------------------- /4. js兼容性/4-1. babel的安装和使用/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [], 3 | "plugins": [] 4 | } -------------------------------------------------------------------------------- /4. js兼容性/4-3. babel插件/js/index copy.js: -------------------------------------------------------------------------------- 1 | class A { 2 | method() { 3 | 4 | } 5 | } -------------------------------------------------------------------------------- /4. js兼容性/4-4. 在webpack中使用babel/.browserslistrc: -------------------------------------------------------------------------------- 1 | last 3 version 2 | > 1% 3 | not ie <= 8 -------------------------------------------------------------------------------- /1. webpack核心功能/1-5. 编译结果分析/src/a.js: -------------------------------------------------------------------------------- 1 | 2 | console.log("module a") 3 | module.exports = "a"; -------------------------------------------------------------------------------- /1. webpack核心功能/1-8. 编译过程/src/a.js: -------------------------------------------------------------------------------- 1 | require("./b") 2 | console.log("a") 3 | module.exports = "a" -------------------------------------------------------------------------------- /3. css工程化/3-2. 利用webpack拆分css/src/assets/pager.css: -------------------------------------------------------------------------------- 1 | .pager{ 2 | text-align: center; 3 | } -------------------------------------------------------------------------------- /4. js兼容性/4-3. babel插件/js/index copy 2.js: -------------------------------------------------------------------------------- 1 | class A { 2 | method() { 3 | 4 | } 5 | } -------------------------------------------------------------------------------- /4. js兼容性/4-3. babel插件/js/index copy 3.js: -------------------------------------------------------------------------------- 1 | class A { 2 | method() { 3 | 4 | } 5 | } -------------------------------------------------------------------------------- /5. 性能优化/5-3. 优化loader性能/test.js: -------------------------------------------------------------------------------- 1 | var cpus = require("os").cpus(); 2 | console.log(cpus.length) -------------------------------------------------------------------------------- /5. 性能优化/5-4. 热替换/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: #fff; 3 | background: brown; 4 | } 5 | -------------------------------------------------------------------------------- /5. 性能优化/性能优化.xmind: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/5. 性能优化/性能优化.xmind -------------------------------------------------------------------------------- /6. 补充和案例/6-2. 搭建多页应用/说明.md: -------------------------------------------------------------------------------- 1 | 见:https://github.com/yjisme/multi-static-pages-webpackproj 2 | -------------------------------------------------------------------------------- /1. webpack核心功能/1-11. loader/src/index.js: -------------------------------------------------------------------------------- 1 | // 未知数 a = 1; 2 | // 未知数 b = 3 3 | require("./a"); 4 | -------------------------------------------------------------------------------- /1. webpack核心功能/1-2. webpack的安装和使用/src/index.js: -------------------------------------------------------------------------------- 1 | require("./a") 2 | console.log("hello webpack"); -------------------------------------------------------------------------------- /1. webpack核心功能/1-7. devtool配置/src/a.js: -------------------------------------------------------------------------------- 1 | var obj = null; 2 | obj.abc(); 3 | console.log("a module") -------------------------------------------------------------------------------- /1. webpack核心功能/1-8. 编译过程/src/index.js: -------------------------------------------------------------------------------- 1 | console.log("index") 2 | require("./a"); 3 | require("./b") -------------------------------------------------------------------------------- /3. css工程化/3-10. 抽离css文件/src/assets/a.css: -------------------------------------------------------------------------------- 1 | @import "./b.css"; 2 | 3 | .a{ 4 | color: red; 5 | } -------------------------------------------------------------------------------- /3. css工程化/3-6. 预编译器less/css/index.css: -------------------------------------------------------------------------------- 1 | @import "abc.css"; 2 | .test { 3 | color: red; 4 | } 5 | -------------------------------------------------------------------------------- /1. webpack核心功能/1-12. [练习]处理样式/src/assets/index.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background: #333; 3 | color: #fff; 4 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-15. [练习]添加文件列表/dist/文件列表.md: -------------------------------------------------------------------------------- 1 | 【main.js】 2 | 大小:4.076KB 3 | 4 | 【main.js.map】 5 | 大小:3.7KB -------------------------------------------------------------------------------- /1. webpack核心功能/1-3. 模块化兼容性/src/commonjsa.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | a: 1, 3 | b: 2, 4 | c: 3 5 | } -------------------------------------------------------------------------------- /3. css工程化/3-2. 利用webpack拆分css/src/index.js: -------------------------------------------------------------------------------- 1 | require("./assets/banner.css") 2 | 3 | console.log(result) 4 | -------------------------------------------------------------------------------- /3. css工程化/3-6. 预编译器less/css/var.less: -------------------------------------------------------------------------------- 1 | @info: #333; 2 | @danger: #f40; 3 | @success: green; 4 | @warn: brown; -------------------------------------------------------------------------------- /1. webpack核心功能/1-1. 如何在浏览器端实现模块化/modules/a.js: -------------------------------------------------------------------------------- 1 | import b from "./b.js" 2 | console.log("a") 3 | export default "a" -------------------------------------------------------------------------------- /1. webpack核心功能/1-15. [练习]添加文件列表/dist/filelist.txt: -------------------------------------------------------------------------------- 1 | 【main.js】 2 | 大小:4.076KB 3 | 4 | 【main.js.map】 5 | 大小:3.7KB -------------------------------------------------------------------------------- /3. css工程化/3-9. 在webpack中使用postcss/src/index.js: -------------------------------------------------------------------------------- 1 | import styles from "./assets/index.pcss"; 2 | console.log(styles) -------------------------------------------------------------------------------- /1. webpack核心功能/1-16. 区分环境/webpack.pro.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | mode: "production", 3 | devtool: "none" 4 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-12. [练习]处理样式/src/index.js: -------------------------------------------------------------------------------- 1 | var content = require("./assets/index.css") 2 | 3 | console.log(content); //css的源码字符串 -------------------------------------------------------------------------------- /1. webpack核心功能/1-16. 区分环境/webpack.dev.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = { 3 | mode: "development", 4 | devtool: "source-map" 5 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-5. 编译结果分析/src/index.js: -------------------------------------------------------------------------------- 1 | console.log("index module") 2 | var a = require("./a") 3 | a.abc(); 4 | console.log(a) -------------------------------------------------------------------------------- /1. webpack核心功能/1-8. 编译过程/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | mode: "development", 3 | devtool: "source-map" 4 | } -------------------------------------------------------------------------------- /5. 性能优化/5-7. 代码压缩/src/index.js: -------------------------------------------------------------------------------- 1 | import "./index.css"; 2 | 3 | const a = "abc"; 4 | const b = "bcd"; 5 | const c = a + b; 6 | -------------------------------------------------------------------------------- /1. webpack核心功能/1-7. devtool配置/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | mode: "production", 3 | devtool: "hidden-source-map" 4 | } -------------------------------------------------------------------------------- /2. 常用扩展/2-3. 复制静态资源/dist/img/webpack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/2. 常用扩展/2-3. 复制静态资源/dist/img/webpack.png -------------------------------------------------------------------------------- /2. 常用扩展/2-8. [练习]区域查询/静态页面/img/china.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/2. 常用扩展/2-8. [练习]区域查询/静态页面/img/china.jpg -------------------------------------------------------------------------------- /3. css工程化/3-7. 在webpack中使用less/src/assets/index.less: -------------------------------------------------------------------------------- 1 | @color: #f40; 2 | 3 | .main { 4 | color: @color; 5 | font-size: 2em; 6 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-2. webpack的安装和使用/src/c.js: -------------------------------------------------------------------------------- 1 | console.log("es6 module c") 2 | import $ from "jquery" 3 | console.log($); 4 | export default "c"; -------------------------------------------------------------------------------- /2. 常用扩展/2-3. 复制静态资源/public/img/webpack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/2. 常用扩展/2-3. 复制静态资源/public/img/webpack.png -------------------------------------------------------------------------------- /2. 常用扩展/2-5. 普通文件处理/src/assets/webpack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/2. 常用扩展/2-5. 普通文件处理/src/assets/webpack.png -------------------------------------------------------------------------------- /2. 常用扩展/2-6. 解决路径问题/src/assets/webpack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/2. 常用扩展/2-6. 解决路径问题/src/assets/webpack.png -------------------------------------------------------------------------------- /2. 常用扩展/2-8. [练习]区域查询/工程/public/img/china.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/2. 常用扩展/2-8. [练习]区域查询/工程/public/img/china.jpg -------------------------------------------------------------------------------- /3. css工程化/3-8. PostCss/.stylelintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "stylelint-config-standard", 3 | "rules": { 4 | "indentation": 4 5 | } 6 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-11. loader/loaders/loader1.js: -------------------------------------------------------------------------------- 1 | module.exports = function(sourceCode){ 2 | console.log("loader1"); 3 | return sourceCode; 4 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-11. loader/loaders/loader2.js: -------------------------------------------------------------------------------- 1 | module.exports = function(sourceCode){ 2 | console.log("loader2"); 3 | return sourceCode; 4 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-11. loader/loaders/loader3.js: -------------------------------------------------------------------------------- 1 | module.exports = function(sourceCode){ 2 | console.log("loader3"); 3 | return sourceCode; 4 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-11. loader/loaders/loader4.js: -------------------------------------------------------------------------------- 1 | module.exports = function(sourceCode){ 2 | console.log("loader4"); 3 | return sourceCode; 4 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-13. [练习]处理图片/dist/img-1dd36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-13. [练习]处理图片/dist/img-1dd36.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-5. 编译结果分析/dist/abc.js: -------------------------------------------------------------------------------- 1 | var a = 1; 2 | var b = 2; 3 | var c = 3; 4 | eval("var d = null;\nd.abc();//# sourceURL=webpack:///./src/a.js") -------------------------------------------------------------------------------- /2. 常用扩展/2-5. 普通文件处理/dist/imgs/webpack.ba6ae.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/2. 常用扩展/2-5. 普通文件处理/dist/imgs/webpack.ba6ae.png -------------------------------------------------------------------------------- /2. 常用扩展/2-5. 普通文件处理/src/assets/sub/webpack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/2. 常用扩展/2-5. 普通文件处理/src/assets/sub/webpack.png -------------------------------------------------------------------------------- /2. 常用扩展/2-6. 解决路径问题/dist/imgs/webpack.ba6ae.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/2. 常用扩展/2-6. 解决路径问题/dist/imgs/webpack.ba6ae.png -------------------------------------------------------------------------------- /2. 常用扩展/2-6. 解决路径问题/src/assets/sub/webpack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/2. 常用扩展/2-6. 解决路径问题/src/assets/sub/webpack.png -------------------------------------------------------------------------------- /3. css工程化/3-10. 抽离css文件/src/assets/img/china.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/3. css工程化/3-10. 抽离css文件/src/assets/img/china.jpg -------------------------------------------------------------------------------- /3. css工程化/3-2. 利用webpack拆分css/src/assets/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/3. css工程化/3-2. 利用webpack拆分css/src/assets/bg.png -------------------------------------------------------------------------------- /3. css工程化/3-5. css module/src/assets/style2.css: -------------------------------------------------------------------------------- 1 | /* article的样式 */ 2 | 3 | .c1 { 4 | color: blue; 5 | } 6 | 7 | .c2 { 8 | background: brown; 9 | } -------------------------------------------------------------------------------- /3. css工程化/3-6. 预编译器less/css/index.less: -------------------------------------------------------------------------------- 1 | @import "common.less"; 2 | @import "theme.less"; 3 | @import "abc.css"; 4 | .test { 5 | color: @danger; 6 | } -------------------------------------------------------------------------------- /5. 性能优化/5-4. 热替换/assets/2020-02-21-14-20-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/5. 性能优化/5-4. 热替换/assets/2020-02-21-14-20-49.png -------------------------------------------------------------------------------- /5. 性能优化/5-4. 热替换/assets/2020-02-21-14-22-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/5. 性能优化/5-4. 热替换/assets/2020-02-21-14-22-32.png -------------------------------------------------------------------------------- /5. 性能优化/5-4. 热替换/assets/2020-02-21-14-34-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/5. 性能优化/5-4. 热替换/assets/2020-02-21-14-34-05.png -------------------------------------------------------------------------------- /5. 性能优化/5-5. 手动分包/assets/2020-02-24-13-24-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/5. 性能优化/5-5. 手动分包/assets/2020-02-24-13-24-57.png -------------------------------------------------------------------------------- /5. 性能优化/5-5. 手动分包/src/index.js: -------------------------------------------------------------------------------- 1 | import $ from "jquery" 2 | import _ from "lodash" 3 | 4 | const result = _.isArray($(".red")) 5 | console.log(result); -------------------------------------------------------------------------------- /5. 性能优化/5-5. 手动分包/src/other.js: -------------------------------------------------------------------------------- 1 | import $ from "jquery" 2 | import _ from "lodash" 3 | 4 | const result = _.isArray($(".red")) 5 | console.log(result); -------------------------------------------------------------------------------- /5. 性能优化/5-6. 自动分包/assets/2020-02-24-17-19-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/5. 性能优化/5-6. 自动分包/assets/2020-02-24-17-19-47.png -------------------------------------------------------------------------------- /6. 补充和案例/6-1. [扩展]不确定的动态依赖/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | mode: "development", 3 | devtool: "source-map", 4 | watch: true, 5 | }; 6 | -------------------------------------------------------------------------------- /3. css工程化/3-3. BEM/assets/2020-01-31-09-53-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/3. css工程化/3-3. BEM/assets/2020-01-31-09-53-31.png -------------------------------------------------------------------------------- /3. css工程化/3-8. PostCss/assets/postcss-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/3. css工程化/3-8. PostCss/assets/postcss-workflow.png -------------------------------------------------------------------------------- /5. 性能优化/5-1. 性能优化概述/assets/2020-02-12-09-53-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/5. 性能优化/5-1. 性能优化概述/assets/2020-02-12-09-53-01.png -------------------------------------------------------------------------------- /5. 性能优化/5-12. gzip/assets/2020-02-28-15-37-26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/5. 性能优化/5-12. gzip/assets/2020-02-28-15-37-26.png -------------------------------------------------------------------------------- /5. 性能优化/5-12. gzip/assets/2020-02-28-15-41-44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/5. 性能优化/5-12. gzip/assets/2020-02-28-15-41-44.png -------------------------------------------------------------------------------- /5. 性能优化/5-2. 减少模块解析/assets/2020-02-13-16-26-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/5. 性能优化/5-2. 减少模块解析/assets/2020-02-13-16-26-41.png -------------------------------------------------------------------------------- /5. 性能优化/5-2. 减少模块解析/assets/2020-02-13-16-28-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/5. 性能优化/5-2. 减少模块解析/assets/2020-02-13-16-28-10.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-13. [练习]处理图片/src/assets/webpack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-13. [练习]处理图片/src/assets/webpack.png -------------------------------------------------------------------------------- /2. 常用扩展/2-8. [练习]区域查询/api.md: -------------------------------------------------------------------------------- 1 | 请求地址:http://yuanjin.tech:5100/api/local 2 | 3 | method:GET 4 | 5 | query: 6 | 7 | - parentId: 可选,若不填,则查询所有省份,若填写省份id,则查询省份下的所有城市 -------------------------------------------------------------------------------- /3. css工程化/3-7. 在webpack中使用less/src/index.js: -------------------------------------------------------------------------------- 1 | import styles from "./assets/index.less" 2 | var div = document.getElementById("app"); 3 | div.className = styles.main; -------------------------------------------------------------------------------- /3. css工程化/3-8. PostCss/assets/2020-02-04-14-31-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/3. css工程化/3-8. PostCss/assets/2020-02-04-14-31-33.png -------------------------------------------------------------------------------- /3. css工程化/3-8. PostCss/assets/2020-02-04-14-37-51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/3. css工程化/3-8. PostCss/assets/2020-02-04-14-37-51.png -------------------------------------------------------------------------------- /3. css工程化/3-8. PostCss/assets/2020-02-05-14-37-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/3. css工程化/3-8. PostCss/assets/2020-02-05-14-37-11.png -------------------------------------------------------------------------------- /3. css工程化/3-9. 在webpack中使用postcss/.stylelintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "stylelint-config-standard", 3 | "rules": { 4 | "indentation": 4 5 | } 6 | } -------------------------------------------------------------------------------- /3. css工程化/3-9. 在webpack中使用postcss/src/assets/index.pcss: -------------------------------------------------------------------------------- 1 | :root { 2 | --dangerColor: #f40; 3 | } 4 | 5 | .danger { 6 | color: var(--dangerColor); 7 | } 8 | -------------------------------------------------------------------------------- /1. webpack核心功能/1-6. 配置文件/webpack.config.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = { 3 | entry: "./src/main.js", 4 | output: { 5 | filename: "bundle.js" 6 | } 7 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-10-26-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-10-26-15.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-10-53-28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-10-53-28.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-11-54-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-11-54-08.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-12-32-38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-12-32-38.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-12-35-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-12-35-05.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-12-39-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-12-39-16.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-12-43-52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-12-43-52.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-12-47-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-12-47-43.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-12-54-34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-12-54-34.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-15-51-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-8. 编译过程/assets/2020-01-09-15-51-07.png -------------------------------------------------------------------------------- /3. css工程化/3-6. 预编译器less/assets/2020-02-03-11-48-45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/3. css工程化/3-6. 预编译器less/assets/2020-02-03-11-48-45.png -------------------------------------------------------------------------------- /3. css工程化/3-6. 预编译器less/assets/2020-02-03-11-50-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/3. css工程化/3-6. 预编译器less/assets/2020-02-03-11-50-05.png -------------------------------------------------------------------------------- /5. 性能优化/5-3. 优化loader性能/assets/2020-02-21-13-32-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/5. 性能优化/5-3. 优化loader性能/assets/2020-02-21-13-32-36.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-1. 如何在浏览器端实现模块化/modules/b.js: -------------------------------------------------------------------------------- 1 | // import $ from "../node_modules/jquery/dist/jquery.js"; 2 | // require("jquery") 3 | console.log("b") 4 | export default "b"; -------------------------------------------------------------------------------- /1. webpack核心功能/1-11. loader/assets/2020-01-13-09-28-52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-11. loader/assets/2020-01-13-09-28-52.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-11. loader/assets/2020-01-13-09-29-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-11. loader/assets/2020-01-13-09-29-08.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-11. loader/assets/2020-01-13-09-35-44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-11. loader/assets/2020-01-13-09-35-44.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-11. loader/assets/2020-01-13-10-29-54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-11. loader/assets/2020-01-13-10-29-54.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-11. loader/assets/2020-01-13-10-39-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-11. loader/assets/2020-01-13-10-39-24.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-14. plugin/assets/2020-01-15-12-45-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-14. plugin/assets/2020-01-15-12-45-16.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-14. plugin/assets/2020-01-15-12-49-26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-14. plugin/assets/2020-01-15-12-49-26.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-3. 模块化兼容性/assets/2020-01-07-07-50-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-3. 模块化兼容性/assets/2020-01-07-07-50-09.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-3. 模块化兼容性/assets/2020-01-07-07-53-45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-3. 模块化兼容性/assets/2020-01-07-07-53-45.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-3. 模块化兼容性/assets/2020-01-07-07-54-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-3. 模块化兼容性/assets/2020-01-07-07-54-25.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-3. 模块化兼容性/assets/2020-01-07-07-55-54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-3. 模块化兼容性/assets/2020-01-07-07-55-54.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-9. 入口和出口/assets/2020-01-09-15-51-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-9. 入口和出口/assets/2020-01-09-15-51-07.png -------------------------------------------------------------------------------- /3. css工程化/3-5. css module/assets/2020-01-31-13-54-37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/3. css工程化/3-5. css module/assets/2020-01-31-13-54-37.png -------------------------------------------------------------------------------- /3. css工程化/3-5. css module/assets/2020-01-31-14-00-56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/3. css工程化/3-5. css module/assets/2020-01-31-14-00-56.png -------------------------------------------------------------------------------- /3. css工程化/3-5. css module/assets/2020-01-31-14-04-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/3. css工程化/3-5. css module/assets/2020-01-31-14-04-11.png -------------------------------------------------------------------------------- /3. css工程化/3-5. css module/assets/2020-01-31-14-08-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/3. css工程化/3-5. css module/assets/2020-01-31-14-08-49.png -------------------------------------------------------------------------------- /4. js兼容性/4-1. babel的安装和使用/assets/2020-02-07-10-12-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/4. js兼容性/4-1. babel的安装和使用/assets/2020-02-07-10-12-01.png -------------------------------------------------------------------------------- /4. js兼容性/4-1. babel的安装和使用/assets/2020-02-07-10-25-56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/4. js兼容性/4-1. babel的安装和使用/assets/2020-02-07-10-25-56.png -------------------------------------------------------------------------------- /4. js兼容性/4-1. babel的安装和使用/assets/2020-02-07-10-27-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/4. js兼容性/4-1. babel的安装和使用/assets/2020-02-07-10-27-30.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-16. 区分环境/webpack.base.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | entry: "./src/index.js", 3 | output: { 4 | filename: "scripts/[name]-[hash:5].js" 5 | } 6 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-7. devtool配置/assets/2020-01-08-16-38-26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-7. devtool配置/assets/2020-01-08-16-38-26.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-7. devtool配置/assets/2020-01-08-16-58-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-7. devtool配置/assets/2020-01-08-16-58-06.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-7. devtool配置/assets/2020-01-08-17-01-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-7. devtool配置/assets/2020-01-08-17-01-13.png -------------------------------------------------------------------------------- /5. 性能优化/5-2. 减少模块解析/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | mode: "development", 3 | devtool: "source-map", 4 | module: { 5 | noParse: /test/ 6 | } 7 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-1. 如何在浏览器端实现模块化/assets/2020-01-07-05-06-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-1. 如何在浏览器端实现模块化/assets/2020-01-07-05-06-11.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-10. 入口和出口的最佳实践/assets/2020-01-10-12-00-28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-10. 入口和出口的最佳实践/assets/2020-01-10-12-00-28.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-10. 入口和出口的最佳实践/assets/2020-01-10-12-38-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-10. 入口和出口的最佳实践/assets/2020-01-10-12-38-03.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-10. 入口和出口的最佳实践/assets/2020-01-10-12-44-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DuYi-Edu/DuYi-Webpack/HEAD/1. webpack核心功能/1-10. 入口和出口的最佳实践/assets/2020-01-10-12-44-13.png -------------------------------------------------------------------------------- /1. webpack核心功能/1-3. 模块化兼容性/src/es6a.js: -------------------------------------------------------------------------------- 1 | // export var a = 1; 2 | // export var b = 2; 3 | // export default 3; 4 | 5 | export default { 6 | a: 1, 7 | b: 2, 8 | c: 3 9 | } -------------------------------------------------------------------------------- /2. 常用扩展/2-4. 开发服务器/src/index.js: -------------------------------------------------------------------------------- 1 | const url = `/api/student/findAll?appkey=demo13_1545210570249`; 2 | fetch(url).then(resp => resp.json()).then(resp => { 3 | console.log(resp) 4 | }) -------------------------------------------------------------------------------- /3. css工程化/3-10. 抽离css文件/src/assets/index.css: -------------------------------------------------------------------------------- 1 | .main{ 2 | width: 500px; 3 | height: 300px; 4 | background: url("./img/china.jpg"); 5 | background-size: 100% 100%; 6 | } -------------------------------------------------------------------------------- /5. 性能优化/5-3. 优化loader性能/src/index.js: -------------------------------------------------------------------------------- 1 | import _ from "lodash"; 2 | 3 | const obj = { 4 | 0: "a", 5 | 1: "b" 6 | }; 7 | 8 | const result = _.isArray(obj); 9 | console.log(result); -------------------------------------------------------------------------------- /4. js兼容性/4-2. babel预设/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { 4 | "useBuiltIns": "usage", 5 | "corejs": 3 6 | }] 7 | ] 8 | } -------------------------------------------------------------------------------- /5. 性能优化/5-4. 热替换/src/index.js: -------------------------------------------------------------------------------- 1 | import a from "./a"; 2 | import "./index.css" 3 | console.log(a); 4 | 5 | if (module.hot) { 6 | // 是否开启了热更新 7 | module.hot.accept(); // 接受热更新 8 | } 9 | -------------------------------------------------------------------------------- /5. 性能优化/5-3. 优化loader性能/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { 4 | "useBuiltIns": "usage", 5 | "corejs": 3 6 | }] 7 | ] 8 | } -------------------------------------------------------------------------------- /3. css工程化/3-10. 抽离css文件/src/index.js: -------------------------------------------------------------------------------- 1 | import styles from "./assets/index.css"; 2 | 3 | var div = document.createElement("div"); 4 | div.className = styles.main; 5 | document.body.appendChild(div); -------------------------------------------------------------------------------- /4. js兼容性/4-4. 在webpack中使用babel/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { 4 | "useBuiltIns": "usage", 5 | "corejs": 3 6 | }] 7 | ] 8 | } -------------------------------------------------------------------------------- /5. 性能优化/5-12. gzip/src/index.js: -------------------------------------------------------------------------------- 1 | import $ from "jquery"; 2 | $(".red").click(async function() { 3 | const {chunk} = await import("./util") 4 | console.log(chunk([1, 3, 4, 67], 2)); 5 | }); 6 | -------------------------------------------------------------------------------- /5. 性能优化/5-6. 自动分包/src/page1.js: -------------------------------------------------------------------------------- 1 | import $ from "jquery" 2 | import _ from "lodash" 3 | import common from "./common" 4 | import "./common.css" 5 | import "./page1.css" 6 | 7 | console.log("page1") -------------------------------------------------------------------------------- /5. 性能优化/5-6. 自动分包/src/page2.js: -------------------------------------------------------------------------------- 1 | import $ from "jquery" 2 | import _ from "lodash" 3 | import common from "./common" 4 | import "./common.css" 5 | import "./page2.css" 6 | 7 | console.log("page2") -------------------------------------------------------------------------------- /1. webpack核心功能/1-13. [练习]处理图片/src/index.js: -------------------------------------------------------------------------------- 1 | var src = require("./assets/webpack.png") 2 | console.log(src); 3 | var img = document.createElement("img") 4 | img.src = src; 5 | document.body.appendChild(img); -------------------------------------------------------------------------------- /5. 性能优化/5-11. bundle analyzer/src/index.js: -------------------------------------------------------------------------------- 1 | import $ from "jquery"; 2 | $(".red").click(async function() { 3 | const {chunk} = await import("./util") 4 | console.log(chunk([1, 3, 4, 67], 2)); 5 | }); 6 | -------------------------------------------------------------------------------- /2. 常用扩展/2-5. 普通文件处理/src/index.js: -------------------------------------------------------------------------------- 1 | //希望导入的模块结果是一个可用的资源路径 2 | import png from "./assets/webpack.png" 3 | console.log(png) 4 | var img = document.createElement("img"); 5 | img.src = png; 6 | document.body.appendChild(img); -------------------------------------------------------------------------------- /2. 常用扩展/2-6. 解决路径问题/src/index.js: -------------------------------------------------------------------------------- 1 | //希望导入的模块结果是一个可用的资源路径 2 | import png from "./assets/webpack.png" 3 | console.log(png) 4 | var img = document.createElement("img"); 5 | img.src = png; 6 | document.body.appendChild(img); -------------------------------------------------------------------------------- /2. 常用扩展/2-7. webpack内置插件/src/index.js: -------------------------------------------------------------------------------- 1 | // console.log(PI); 2 | // console.log(VERSION); 3 | // console.log(DOMAIN); 4 | 5 | var r1 = $('#item'); // <= 起作用 6 | var r2 = _.drop([1, 2, 3], 2); // <= 起作用 7 | console.log(r1, r2); -------------------------------------------------------------------------------- /5. 性能优化/5-3. 优化loader性能/src/loader.js: -------------------------------------------------------------------------------- 1 | function loader(source){ 2 | return `new source` 3 | } 4 | 5 | loader.pitch = function(filePath){ 6 | // 可返回可不返回 7 | // 如果返回,返回源代码 8 | } 9 | 10 | module.exports = loader; -------------------------------------------------------------------------------- /1. webpack核心功能/1-14. plugin/webpack.config.js: -------------------------------------------------------------------------------- 1 | var MyPlugin = require("./plugins/MyPlugin") 2 | 3 | module.exports = { 4 | mode: "development", 5 | watch: true, 6 | plugins: [ 7 | new MyPlugin() 8 | ] 9 | } -------------------------------------------------------------------------------- /3. css工程化/3-2. 利用webpack拆分css/src/assets/banner.css: -------------------------------------------------------------------------------- 1 | @import "./pager.css"; 2 | 3 | .red { 4 | color: "#f40"; 5 | background: url("./bg.png"); 6 | width: 1000px; 7 | height: 1000px; 8 | border: 2px solid; 9 | } -------------------------------------------------------------------------------- /5. 性能优化/5-8. tree shaking/src/index.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background: #333; 3 | color: #fff; 4 | } 5 | 6 | h1{ 7 | font-size: 4em; 8 | } 9 | 10 | .red{ 11 | color: red; 12 | } 13 | 14 | .green{ 15 | color: green; 16 | } -------------------------------------------------------------------------------- /2. 常用扩展/2-8. [练习]区域查询/工程/webpack.prod.js: -------------------------------------------------------------------------------- 1 | //生产环境 2 | const { CleanWebpackPlugin } = require("clean-webpack-plugin") 3 | module.exports = { 4 | mode: "production", 5 | plugins: [ 6 | new CleanWebpackPlugin(), 7 | ] 8 | } -------------------------------------------------------------------------------- /4. js兼容性/4-4. 在webpack中使用babel/src/index.js: -------------------------------------------------------------------------------- 1 | const func = () => { 2 | console.log("abc"); 3 | } 4 | 5 | func(); 6 | 7 | new Promise(resolve => { 8 | resolve(); 9 | }) 10 | 11 | async function method(){ 12 | 13 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-9. 入口和出口/node/dirname.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ./ : 4 | 1. 模块化代码中,比如require("./"),表示当前js文件所在的目录 5 | 2. 在路径处理中,"./"表示node运行目录 6 | 7 | __dirname: 所有情况下,都表示当前运行的js文件所在的目录,它是一个绝对路径 8 | 9 | */ 10 | 11 | console.log(__dirname) -------------------------------------------------------------------------------- /1. webpack核心功能/1-9. 入口和出口/node/sub/dirname.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ./ : 4 | 1. 模块化代码中,比如require("./"),表示当前js文件所在的目录 5 | 2. 在路径处理中,"./"表示node运行目录 6 | 7 | __dirname: 所有情况下,都表示当前运行的js文件所在的目录,它是一个绝对路径 8 | 9 | */ 10 | 11 | console.log(__dirname) -------------------------------------------------------------------------------- /3. css工程化/3-5. css module/src/index.js: -------------------------------------------------------------------------------- 1 | import style1 from "./assets/style1.css" 2 | import style2 from "./assets/style2.css" 3 | 4 | console.log(style1) 5 | 6 | const div1 = document.getElementById("div1"); 7 | div1.className = style2.c1; -------------------------------------------------------------------------------- /1. webpack核心功能/1-9. 入口和出口/node/pathtest.js: -------------------------------------------------------------------------------- 1 | //该对象提供了大量路径处理的函数 2 | 3 | var path = require("path") //导出了一个对象 4 | 5 | // var result = path.resolve("./", "child", "abc", "123"); 6 | 7 | var result = path.resolve(__dirname, "src"); 8 | console.log(result); -------------------------------------------------------------------------------- /4. js兼容性/4-4. 在webpack中使用babel/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | mode: "development", 3 | devtool: "source-map", 4 | module: { 5 | rules: [ 6 | { test: /\.js$/, use: "babel-loader" } 7 | ] 8 | } 9 | } -------------------------------------------------------------------------------- /3. css工程化/3-8. PostCss/css/source copy 2.pcss: -------------------------------------------------------------------------------- 1 | .a { 2 | color: red; 3 | & .b { 4 | color: green; 5 | } 6 | 7 | & > .b { 8 | color: blue; 9 | } 10 | 11 | &:hover { 12 | color: #000; 13 | } 14 | } -------------------------------------------------------------------------------- /3. css工程化/3-6. 预编译器less/css/common.less: -------------------------------------------------------------------------------- 1 | @info: #333; 2 | @danger: #f40; 3 | @success: green; 4 | @warn: brown; 5 | 6 | .center(@type:absolute){ 7 | position: @type; 8 | left: 50%; 9 | top: 50%; 10 | transform: translate(-50%, -50%); 11 | } -------------------------------------------------------------------------------- /3. css工程化/3-9. 在webpack中使用postcss/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | map: false, //关闭source-map 3 | plugins: { 4 | "postcss-preset-env": { 5 | stage: 0, //哪怕是处于草案阶段的语法,也需要转换 6 | preserve: false 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-15. [练习]添加文件列表/webpack.config.js: -------------------------------------------------------------------------------- 1 | var FileListPlugin = require("./plugins/FileListPlugin") 2 | 3 | module.exports = { 4 | mode: "development", 5 | devtool: "source-map", 6 | plugins: [ 7 | new FileListPlugin("文件列表.md") 8 | ] 9 | } -------------------------------------------------------------------------------- /3. css工程化/3-8. PostCss/css/source copy 3.pcss: -------------------------------------------------------------------------------- 1 | :root { 2 | --center: { 3 | position: absolute; 4 | left: 50%; 5 | top: 50%; 6 | transform: translate(-50%, -50%); 7 | } 8 | } 9 | 10 | .item { 11 | @apply --center; 12 | } 13 | -------------------------------------------------------------------------------- /3. css工程化/3-4. css-in-js/scripts/css/common.js: -------------------------------------------------------------------------------- 1 | export const redBg = { 2 | backgroundColor: "#f40", 3 | color: "#fff", 4 | } 5 | 6 | export function border(width = 2, color = "#333") { 7 | return { 8 | border: `${width}px solid ${color}` 9 | } 10 | } -------------------------------------------------------------------------------- /3. css工程化/3-5. css module/src/assets/style1.css: -------------------------------------------------------------------------------- 1 | /* 处理banner的样式 */ 2 | 3 | :global(.main){ 4 | background: lightblue; 5 | } 6 | 7 | .c1 { 8 | color: red 9 | } 10 | 11 | .c2 { 12 | color: green 13 | } 14 | 15 | 16 | 17 | h1{ 18 | font-weight: bold; 19 | } -------------------------------------------------------------------------------- /1. webpack核心功能/1-12. [练习]处理样式/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | mode: "development", 3 | devtool: "source-map", 4 | module: { 5 | rules: [{ 6 | test: /\.css$/, 7 | use: ["./loaders/style-loader"] 8 | }] 9 | } 10 | } -------------------------------------------------------------------------------- /2. 常用扩展/2-8. [练习]区域查询/静态页面/css/detail.css: -------------------------------------------------------------------------------- 1 | .container{ 2 | width: 500px; 3 | margin: 20px auto; 4 | line-height: 2; 5 | } 6 | 7 | .title{ 8 | font-size: 2em; 9 | font-weight: bold; 10 | } 11 | 12 | dt{ 13 | font-weight: bold; 14 | font-size: 1.3em; 15 | } -------------------------------------------------------------------------------- /2. 常用扩展/2-8. [练习]区域查询/工程/public/css/detail.css: -------------------------------------------------------------------------------- 1 | .container{ 2 | width: 500px; 3 | margin: 20px auto; 4 | line-height: 2; 5 | } 6 | 7 | .title{ 8 | font-size: 2em; 9 | font-weight: bold; 10 | } 11 | 12 | dt{ 13 | font-weight: bold; 14 | font-size: 1.3em; 15 | } -------------------------------------------------------------------------------- /3. css工程化/3-6. 预编译器less/css/index copy 2.less: -------------------------------------------------------------------------------- 1 | @height: 60px; 2 | //less注释 3 | /* 4 | css注释 5 | */ 6 | .header{ 7 | @height: 56px; 8 | 9 | height: @height; 10 | 11 | .menu{ 12 | height: @height; 13 | } 14 | } 15 | 16 | .abc{ 17 | height: @height; 18 | } -------------------------------------------------------------------------------- /5. 性能优化/5-4. 热替换/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 |12 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda, deserunt ducimus. Et iure labore debitis tempora praesentium atque velit provident recusandae dolor harum fugiat facere totam, maiores repudiandae illum aliquid? 13 |
14 | 15 | -------------------------------------------------------------------------------- /2. 常用扩展/2-4. 开发服务器/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |12 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda, deserunt ducimus. Et iure labore debitis tempora praesentium atque velit provident recusandae dolor harum fugiat facere totam, maiores repudiandae illum aliquid? 13 |
14 | 15 | -------------------------------------------------------------------------------- /2. 常用扩展/2-5. 普通文件处理/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |12 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda, deserunt ducimus. Et iure labore debitis tempora praesentium atque velit provident recusandae dolor harum fugiat facere totam, maiores repudiandae illum aliquid? 13 |
14 | 15 | -------------------------------------------------------------------------------- /2. 常用扩展/2-6. 解决路径问题/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |12 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda, deserunt ducimus. Et iure labore debitis tempora praesentium atque velit provident recusandae dolor harum fugiat facere totam, maiores repudiandae illum aliquid? 13 |
14 | 15 | -------------------------------------------------------------------------------- /5. 性能优化/5-8. tree shaking/src/myMath.js: -------------------------------------------------------------------------------- 1 | import { chunk } from "lodash-es"; 2 | 3 | export function add(a, b) { 4 | console.log("add"); 5 | return a + b; 6 | } 7 | 8 | export function sub(a, b) { 9 | console.log("sub"); 10 | return a - b; 11 | } 12 | 13 | export function myChunk(arr, num) { 14 | console.log("myChunk"); 15 | return chunk(arr, num); 16 | } 17 | 18 | // export default { 19 | // add: function add(a, b) { 20 | // console.log("add"); 21 | // return a + b; 22 | // }, 23 | // sub: function sub(a, b) { 24 | // console.log("sub"); 25 | // return a - b; 26 | // } 27 | // }; 28 | -------------------------------------------------------------------------------- /3. css工程化/3-8. PostCss/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "postcss css/source.pcss -o css/out.css -w" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "devDependencies": { 12 | "postcss": "^7.0.26", 13 | "postcss-apply": "^0.12.0", 14 | "postcss-cli": "^7.1.0", 15 | "postcss-color-function": "^4.1.0", 16 | "postcss-preset-env": "^6.7.0", 17 | "stylelint": "^13.0.0", 18 | "stylelint-config-standard": "^19.0.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /2. 常用扩展/2-8. [练习]区域查询/工程/webpack.config.js: -------------------------------------------------------------------------------- 1 | const baseConfig = require("./webpack.base") 2 | const devConfig = require("./webpack.dev") 3 | const prodConfig = require("./webpack.prod") 4 | 5 | module.exports = function (env) { 6 | if (env && env.prod) { 7 | //生产环境 8 | const config = { 9 | ...baseConfig, 10 | ...prodConfig 11 | } 12 | config.plugins = [...baseConfig.plugins, ...prodConfig.plugins] 13 | return config; 14 | } 15 | else { 16 | //开发环境 17 | return { 18 | ...baseConfig, 19 | ...devConfig 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /2. 常用扩展/2-3. 复制静态资源/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { CleanWebpackPlugin } = require("clean-webpack-plugin") 2 | const HtmlWebpackPlugin = require('html-webpack-plugin') 3 | const CopyPlugin = require('copy-webpack-plugin'); 4 | module.exports = { 5 | mode: "development", 6 | devtool: "source-map", 7 | output: { 8 | filename: "scripts/[name].[chunkhash:5].js" 9 | }, 10 | plugins: [ 11 | new CleanWebpackPlugin(), 12 | new HtmlWebpackPlugin({ 13 | template: "./public/index.html" 14 | }), 15 | new CopyPlugin([ 16 | { from: "./public", to: "./" } 17 | ]) 18 | ] 19 | } -------------------------------------------------------------------------------- /3. css工程化/3-10. 抽离css文件/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "build": "webpack", 8 | "dev": "webpack-dev-server" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "devDependencies": { 13 | "clean-webpack-plugin": "^3.0.0", 14 | "css-loader": "^3.4.2", 15 | "file-loader": "^5.0.2", 16 | "html-webpack-plugin": "^3.2.0", 17 | "mini-css-extract-plugin": "^0.9.0", 18 | "style-loader": "^1.1.3", 19 | "webpack": "^4.41.5", 20 | "webpack-cli": "^3.3.10", 21 | "webpack-dev-server": "^3.10.3" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /5. 性能优化/5-3. 优化loader性能/md/custom.less: -------------------------------------------------------------------------------- 1 | 2 | /* Please visit the URL below for more information: */ 3 | /* https://shd101wyy.github.io/markdown-preview-enhanced/#/customize-css */ 4 | 5 | .markdown-preview.markdown-preview { 6 | // modify your style here 7 | // eg: background-color: blue; 8 | font-family: "consolas", "Noto Sans S Chinese"; 9 | font-size: 1em; 10 | } 11 | 12 | .markdown-img-description{ 13 | text-align: center; 14 | margin-top: -1em; 15 | color: #666;; 16 | margin-bottom: 2em; 17 | } 18 | 19 | html body img{ 20 | border:2px solid #ccc; 21 | } 22 | 23 | .markdown-p-center{ 24 | text-align: center; 25 | } -------------------------------------------------------------------------------- /2. 常用扩展/2-8. [练习]区域查询/工程/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "area-proj", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "dev": "webpack-dev-server", 8 | "build": "webpack --env.prod" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "devDependencies": { 13 | "clean-webpack-plugin": "^3.0.0", 14 | "copy-webpack-plugin": "^5.1.1", 15 | "html-webpack-plugin": "^3.2.0", 16 | "webpack": "^4.41.5", 17 | "webpack-cli": "^3.3.10", 18 | "webpack-dev-server": "^3.10.1" 19 | }, 20 | "dependencies": { 21 | "jquery": "^3.4.1", 22 | "query-string": "^6.10.1" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /5. 性能优化/5-3. 优化loader性能/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "devDependencies": { 12 | "@babel/core": "^7.8.4", 13 | "@babel/preset-env": "^7.8.4", 14 | "babel-loader": "^8.0.6", 15 | "cache-loader": "^4.1.0", 16 | "core-js": "^3.6.4", 17 | "lodash": "^4.17.15", 18 | "regenerator-runtime": "^0.13.3", 19 | "thread-loader": "^2.1.3", 20 | "webpack": "^4.41.6", 21 | "webpack-cli": "^3.3.11" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /2. 常用扩展/2-8. [练习]区域查询/静态页面/css/list.css: -------------------------------------------------------------------------------- 1 | .container { 2 | width: 800px; 3 | margin: 20px auto; 4 | line-height: 2; 5 | display: flex; 6 | justify-content: space-between; 7 | } 8 | 9 | .china-map{ 10 | width: 340px; 11 | height: 248px; 12 | background: url("../img/china.jpg"); 13 | background-size: 100% 100%; 14 | } 15 | 16 | .provinces{ 17 | list-style: none; 18 | display: flex; 19 | width: 450px; 20 | flex-wrap: wrap; 21 | } 22 | 23 | .provinces li{ 24 | margin: 0 10px; 25 | } 26 | 27 | .provinces a{ 28 | text-decoration: none; 29 | display: block; 30 | } 31 | 32 | .provinces a:hover{ 33 | color: #f40; 34 | } -------------------------------------------------------------------------------- /2. 常用扩展/2-2. 自动生成页面/dist/a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |12 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda, deserunt ducimus. Et iure labore debitis tempora praesentium atque velit provident recusandae dolor harum fugiat facere totam, maiores repudiandae illum aliquid? 13 |
14 | 15 | -------------------------------------------------------------------------------- /2. 常用扩展/2-8. [练习]区域查询/工程/public/css/list.css: -------------------------------------------------------------------------------- 1 | .container { 2 | width: 800px; 3 | margin: 20px auto; 4 | line-height: 2; 5 | display: flex; 6 | justify-content: space-between; 7 | } 8 | 9 | .china-map{ 10 | width: 340px; 11 | height: 248px; 12 | background: url("../img/china.jpg"); 13 | background-size: 100% 100%; 14 | } 15 | 16 | .provinces{ 17 | list-style: none; 18 | display: flex; 19 | width: 450px; 20 | flex-wrap: wrap; 21 | } 22 | 23 | .provinces li{ 24 | margin: 0 10px; 25 | } 26 | 27 | .provinces a{ 28 | text-decoration: none; 29 | display: block; 30 | } 31 | 32 | .provinces a:hover{ 33 | color: #f40; 34 | } -------------------------------------------------------------------------------- /2. 常用扩展/2-8. [练习]区域查询/静态页面/detail.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |12 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda, deserunt ducimus. Et iure labore debitis tempora praesentium atque velit provident recusandae dolor harum fugiat facere totam, maiores repudiandae illum aliquid? 13 |
14 | 15 | -------------------------------------------------------------------------------- /2. 常用扩展/2-5. 普通文件处理/dist/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |12 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda, deserunt ducimus. Et iure labore debitis tempora praesentium atque velit provident recusandae dolor harum fugiat facere totam, maiores repudiandae illum aliquid? 13 |
14 | 15 | -------------------------------------------------------------------------------- /3. css工程化/3-8. PostCss/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |12 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda, deserunt ducimus. Et iure labore debitis tempora praesentium atque velit provident recusandae dolor harum fugiat facere totam, maiores repudiandae illum aliquid? 13 |
14 | 15 | -------------------------------------------------------------------------------- /3. css工程化/3-9. 在webpack中使用postcss/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "build": "webpack", 8 | "dev": "webpack-dev-server" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "devDependencies": { 13 | "css-loader": "^3.4.2", 14 | "html-webpack-plugin": "^3.2.0", 15 | "postcss": "^7.0.26", 16 | "postcss-loader": "^3.0.0", 17 | "postcss-preset-env": "^6.7.0", 18 | "style-loader": "^1.1.3", 19 | "stylelint-config-standard": "^19.0.0", 20 | "webpack": "^4.41.5", 21 | "webpack-cli": "^3.3.10", 22 | "webpack-dev-server": "^3.10.3" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /1. webpack核心功能/1-16. 区分环境/课件.md: -------------------------------------------------------------------------------- 1 | # 区分环境 {ignore} 2 | 3 | [toc] 4 | 5 | 有些时候,我们需要针对生产环境和开发环境分别书写webpack配置 6 | 7 | 为了更好的适应这种要求,webpack允许配置不仅可以是一个对象,还可以是一个**函数** 8 | 9 | ```js 10 | module.exports = env => { 11 | return { 12 | //配置内容 13 | } 14 | } 15 | ``` 16 | 17 | 在开始构建时,webpack如果发现配置是一个函数,会调用该函数,将函数返回的对象作为配置内容,因此,开发者可以根据不同的环境返回不同的对象 18 | 19 | 在调用webpack函数时,webpack会向函数传入一个参数env,该参数的值来自于webpack命令中给env指定的值,例如 20 | 21 | ```shell 22 | npx webpack --env abc # env: "abc" 23 | 24 | npx webpack --env.abc # env: {abc:true} 25 | npx webpack --env.abc=1 # env: {abc:1} 26 | npx webpack --env.abc=1 --env.bcd=2 # env: {abc:1, bcd:2} 27 | ``` 28 | 29 | 这样一来,我们就可以在命令中指定环境,在代码中进行判断,根据环境返回不同的配置结果。 -------------------------------------------------------------------------------- /2. 常用扩展/2-3. 复制静态资源/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
12 |
13 |
15 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda, deserunt ducimus. Et iure labore debitis tempora praesentium atque velit provident recusandae dolor harum fugiat facere totam, maiores repudiandae illum aliquid? 16 |
17 | 18 | -------------------------------------------------------------------------------- /5. 性能优化/5-8. tree shaking/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "version": "1.0.0", 4 | "description": "", 5 | "scripts": { 6 | "build": "webpack" 7 | }, 8 | "author": "", 9 | "license": "ISC", 10 | "devDependencies": { 11 | "clean-webpack-plugin": "^3.0.0", 12 | "css-loader": "^3.4.2", 13 | "glob": "^7.1.6", 14 | "glob-all": "^3.1.0", 15 | "lodash": "^4.17.15", 16 | "lodash-es": "^4.17.15", 17 | "mini-css-extract-plugin": "^0.9.0", 18 | "purgecss-webpack-plugin": "^2.1.0", 19 | "webpack": "^4.41.6", 20 | "webpack-cli": "^3.3.11", 21 | "webpack-deep-scope-plugin": "^1.6.2" 22 | }, 23 | "sideEffects": [ 24 | "!src/common.js" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /2. 常用扩展/2-3. 复制静态资源/dist/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
12 |
13 |
15 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda, deserunt ducimus. Et iure labore debitis tempora praesentium atque velit provident recusandae dolor harum fugiat facere totam, maiores repudiandae illum aliquid? 16 |
17 | 18 | -------------------------------------------------------------------------------- /5. 性能优化/5-1. 性能优化概述/课件.md: -------------------------------------------------------------------------------- 1 | # 性能优化概述 2 | 3 | 本章所讲的性能优化主要体现在三个方面: 4 | 5 |
7 |
34 |
35 |
37 | ${g1} 38 |
39 | `; 40 | }); 41 | resolve(markdown); 42 | }); 43 | }, 44 | onDidParseMarkdown: function(html) { 45 | return new Promise((resolve, reject) => { 46 | return resolve(scripts + html); 47 | }); 48 | } 49 | }; 50 | -------------------------------------------------------------------------------- /3. css工程化/3-6. 预编译器less/课件.md: -------------------------------------------------------------------------------- 1 | # CSS预编译器 {ignore} 2 | 3 | ## 基本原理 4 | 5 | 编写css时,受限于css语言本身,常常难以处理一些问题: 6 | 7 | - 重复的样式值:例如常用颜色、常用尺寸 8 | - 重复的代码段:例如绝对定位居中、清除浮动 9 | - 重复的嵌套书写 10 | 11 | 由于官方迟迟不对css语言本身做出改进,一些第三方机构开始想办法来解决这些问题 12 | 13 | 其中一种方案,便是预编译器 14 | 15 | 预编译器的原理很简单,即使用一种更加优雅的方式来书写样式代码,通过一个编译器,将其转换为可被浏览器识别的传统css代码 16 | 17 |  18 | 19 | 目前,最流行的预编译器有**LESS**和**SASS**,由于它们两者特别相似,因此仅学习一种即可(本课程学习LESS) 20 | 21 |  22 | 23 | > less官网:http://lesscss.org/ 24 | > less中文文档1(非官方):http://lesscss.cn/ 25 | > less中文文档2(非官方):https://less.bootcss.com/ 26 | > sass官网:https://sass-lang.com/ 27 | > sass中文文档1(非官方):https://www.sass.hk/ 28 | > sass中文文档2(非官方):https://sass.bootcss.com/ 29 | 30 | ## LESS的安装和使用 31 | 32 | 从原理可知,要使用LESS,必须要安装LESS编译器 33 | 34 | LESS编译器是基于node开发的,可以通过npm下载安装 35 | 36 | ```shell 37 | npm i -D less 38 | ``` 39 | 40 | 安装好了less之后,它提供了一个CLI工具`lessc`,通过该工具即可完成编译 41 | 42 | ```shell 43 | lessc less代码文件 编译后的文件 44 | ``` 45 | 46 | 试一试: 47 | 48 | 新建一个`index.less`文件,编写内容如下: 49 | 50 | ```less 51 | // less代码 52 | @red: #f40; 53 | 54 | .redcolor { 55 | color: @red; 56 | } 57 | ``` 58 | 59 | 运行命令: 60 | 61 | ```shell 62 | lessc index.less index.css 63 | ``` 64 | 65 | 可以看到编译之后的代码: 66 | 67 | ```css 68 | .redcolor { 69 | color: #f40; 70 | } 71 | ``` 72 | 73 | ## LESS的基本使用 74 | 75 | 具体的使用见文档:https://less.bootcss.com/ 76 | 77 | - 变量 78 | - 混合 79 | - 嵌套 80 | - 运算 81 | - 函数 82 | - 作用域 83 | - 注释 84 | - 导入 -------------------------------------------------------------------------------- /4. js兼容性/4-2. babel预设/课件.md: -------------------------------------------------------------------------------- 1 | # babel预设 2 | 3 | babel有多种预设,最常见的预设是`@babel/preset-env` 4 | 5 | `@babel/preset-env`可以让你使用最新的JS语法,而无需针对每种语法转换设置具体的插件 6 | 7 | **配置** 8 | 9 | ```json 10 | { 11 | "presets": [ 12 | "@babel/preset-env" 13 | ] 14 | } 15 | ``` 16 | 17 | **兼容的浏览器** 18 | 19 | `@babel/preset-env`需要根据兼容的浏览器范围来确定如何编译,和postcss一样,可以使用文件`.browserslistrc`来描述浏览器的兼容范围 20 | 21 | ``` 22 | last 3 version 23 | > 1% 24 | not ie <= 8 25 | ``` 26 | 27 | **自身的配置** 28 | 29 | 和`postcss-preset-env`一样,`@babel/preset-env`自身也有一些配置 30 | 31 | > 具体的配置见:https://www.babeljs.cn/docs/babel-preset-env#options 32 | 33 | 配置方式是: 34 | 35 | ```json 36 | { 37 | "presets": [ 38 | ["@babel/preset-env", { 39 | "配置项1": "配置值", 40 | "配置项2": "配置值", 41 | "配置项3": "配置值" 42 | }] 43 | ] 44 | } 45 | ``` 46 | 47 | 其中一个比较常见的配置项是`usebuiltins`,该配置的默认值是false 48 | 49 | 它有什么用呢?由于该预设仅转换新的语法,并不对新的API进行任何处理 50 | 51 | 例如: 52 | 53 | ```js 54 | new Promise(resolve => { 55 | resolve() 56 | }) 57 | ``` 58 | 59 | 转换的结果为 60 | 61 | ```js 62 | new Promise(function (resolve) { 63 | resolve(); 64 | }); 65 | ``` 66 | 67 | 如果遇到没有Promise构造函数的旧版本浏览器,该代码就会报错 68 | 69 | 而配置`usebuiltins`可以在编译结果中注入这些新的API,它的值默认为`false`,表示不注入任何新的API,可以将其设置为`usage`,表示根据API的使用情况,按需导入API 70 | 71 | ```json 72 | { 73 | "presets": [ 74 | ["@babel/preset-env", { 75 | "useBuiltIns": "usage", 76 | "corejs": 3 77 | }] 78 | ] 79 | } 80 | ``` -------------------------------------------------------------------------------- /1. webpack核心功能/1-4. [练习]酷炫的数字查找特效/dist/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |