webpack4的单页多页自助脚手架

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:45   2638   0

工作之余写了一个简单的基于webpack的纯净版支持单页/多页应用的脚手架。

项目地址:https://github.com/keaderzyp/multi-webpack

主要由于目前前端市场脚手架基于webpack开发多数趋于免配置化,将webpack部分复杂的配置关系抽象到了依赖层,导致很多工作经验少的同学脱节比较严重,由于webpack本身的规模过于庞大,很多人疲于学习选择成熟的脚手架,以至于很多同学虽然更专注前端框架的业务开发了,但是基础内容脱离的越来越远。

所以作者在工作之余提供了一份简易的基于webpack搭建的脚手架

首先介绍目录结构

该目录结构主要分两部分

public(静态资源+网页模版)

src(源代码)

在src里可以使用CommonJS以及ES6+的各种语法

在public里要遵循浏览器js规范

通过babel编译后生产代码会输出到dist目录,

整个public中的静态资源会一同被输入到dist目录

public中的静态资源不参与webpack构建

src中的entrys为多页/单页入口文件夹

入口文件如果是单页就创建一个js文件,同时在pubic目录下要创建一个同名的html文件

如果是多页面应用可创建多个js文件同时在public目录必须创建一一对应的同名html文件

本项目已引入ejs-loader

所以在public中的html文件可以使用ejs语法将html文件拆分拼接,使用ejs模版进行部分静态值的处理

由于devserver非express等服务器,在打包构建后产生的页面内容为编译整合完的html完整文件

所以虽然可以使用ejs部分语法,不要在html中使用服务器动态数据,否则构建会产生异常

脚手架除了支持在src中引入npm安装的依赖以外

还支持在public中引入其他js依赖

如在项目中使用jq等js可在public中放入依赖min文件

并在html中以相对路径的形式引入

到此步骤后即可在html内的js脚本域使用jquery

如果在src开发代码中使用jquery

需要在webpack.base.js中使用externals来进行免构建引入

如图

在src中使用方式为

如此用法在构建时不会将jquery依赖注入到构建结果

并且在build之后静态资源会自动注入到dist中保证正常使用无问题

其他引入方式请自行参阅项目内容

贴上项目地址:

https://github.com/keaderzyp/multi-webpack

本脚手架为基础脚手架

在内部默认使用了常用的部分loader和plugin

如需要特殊功能请自行修改webpack配置文件,

发布文章的目的为记录学习,并分享知识。

更多的webpack知识请参阅webpack官方网站,上面内容应有尽有

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP