基于Webpack构建前端页面
2019-07-23 22:28
1386 查看
原文作者:陈帅华-探索技术艺术与国学之美
原文链接:http://www.shuaihuajun.com/article/webpack-build-spa/
当前端项目做多了之后,每次开始一个新前端项目,我都会配置几乎和之前无差别的开发和前端代码构建环境,虽说温故而知新,可量变最终是要质变的。为了解决我这一痛点以及喜欢尝试新鲜事物的心态,但又不想直接套用那些对学习具有核心价值的前端知识没多大益处的现成框架,于是自己花时间造一个适合我技术栈的轮子。
出自苏打绿《喜欢寂寞》
与另辟蹊径无关,关于走别人走过的路,我这么想;“老人有老作为,新人有新成就”——《瓦尔登湖》。或许你亲自尝试后就能有新发现。哪怕为了获得新体验取悦自己。不亲自体味一遍其中滋味,怎么敢大言不惭地说感同身受,怎么敢说你懂?
其实我的想做的东西很单纯,将用于构建前端代码的配置的和与业务相关的代码分离。用于构建的代码和具体前端业务的代码通过一个页面配置清单联结。所有业务涉及到的页面都能在这份清单中找到相应的记录。
组成这份清单的基本单元是页面,每一个页面由一系列与页面相关的配置项目构成,一个页面最主要的两个配置项包含两项:
- 结构模板
- 其它资源
其中其它资源包含除HTML结构模板以外的超文本内容:
- JavaScript脚本
- CSS样式
- 图片
- 其它
处理JavaScript可以使用
babel-loader或者
ts-loader,处理CSS可以使用
scss-loader或者
css-loader,对于其它资源,可以借助
***-loader预处理器处理。
单个项目包含许多页面及页面配置项
一个配置清单可以容纳的项目数应该是无上限的,这个要开发者自己抉择可以容纳的项目数量,如果清单中的项目过多,会出现混乱的问题,如果使用界面操作的方式管理项目,以及每个项目的每一个页面,还有每一个页面的配置,可以大大提升前端开发环境配置效率。这件事我会在接下来考虑。
一份清单中包含多个项目
在
NodeJS中使用
webpack时,将清单中的所有项目按
webpack要求格式的配置对象组传入
webpack()函数中,将返回
webpack编译器的实例,该实例包含两个方法,一个是
compiler.run()编译一次,一个是
compiler.watch()开始监听文件变化并编译:
[code]const webpack = require('webpack') compiler = webpack([...]) compiler.run() // compiler.watch()
我将构建页面的命令行发不到
npm上,spab-cli需要全局安装,spab安装到本地即可。
使用
spab build命令将编译一次,使用
spab watch将监听文件变化,当文件发生变化执行编译。
相关文章推荐
- gulp + webpack 构建多页面前端项目
- gulp + webpack 构建多页面前端项目
- gulp + webpack 构建多页面前端项目
- webpack前端构建工具学习总结(四)之自动化生成项目中的html页面
- gulp + webpack 构建多页面前端项目
- gulp + webpack 构建多页面前端项目
- gulp + webpack 构建多页面前端项目
- gulp + webpack 构建多页面前端项目
- [React项目总结] 基于 webpack 搭建前端工程基础篇
- webpack---使用插件,常见webpack的plugin,构建vue,react单页面/多页面工程APP必备插件
- 基于react16 webpack3 搭建前端spa基础框架 react-router的4种异步加载方式
- EasyDSS高性能流媒体服务器前端重构(五)- webpack + vue-router 开发单页面前端实现按需加载 - 副本
- 基于vue.js 2.0,不使用webpack,只在浏览器上单独使用Element UI的Table表格控件完成增删改查页面
- Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)
- 基于webpack搭建前端工程解决方案探索
- 基于webpack的前端工程化开发解决方案探索(一):动态生成HTML
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV流媒体服务器前端重构(一)-从零开始搭建 webpack + vue + AdminLTE 多页面脚手架
- 基于ES6,使用React、Webpack、Babel构建模块化JavaScript应用
- 浅析基于WEB前端页面的页面内容搜索的实现思路
- vue webpack多页面构建的实例代码第1/3页