Leona 发表于 2019-4-2 11:51

【Web】前端静态页面开发小工具(WebsiteBuilderTools)

本帖最后由 Leona 于 2019-4-2 11:53 编辑

# WebsiteBuilderTools
一款基于art-template模板引擎,gulp的前端网站开发构建小工具,开发支持实时热更新。

## 开发初衷
- 前后端分离是目前的一个大趋势,可能已经太多的前端没有经历前后端一起开发的日子了,但是一些老

项目还是依然需要前后端一起开发。前段时间公司要我写几个静态页面,习惯了前后端分离开发,一时间

没有框架的写静态页面感觉十分的麻烦,而且万一他们想改个什么菜单、文字或者图片的,如果只有一个

页面需要修改还好,万一它是整站都有,折腾的还是我。于是我就想,能不能搞个前端的模板引擎,既可

以实时热更新调试,也可以自动打包编译成可供后端使用的静态页面。
- 于是乎我就整理了下我想实现的效果
1. 可以自动编译我钟爱的less,并压缩为min版
2. 可以自动压缩图片
3. 可以将js自动压缩成min版
4. 可以组件化开发html,比方说头部,底部,侧边栏一个组件,或者说一个母版框架
5. 可以用npm快速构建项目
6. 开发时可以实时热更新,编辑文件保存,浏览器自动刷新页面
7. 还能配置路由,方便编写页面时的调试
8. 一些菜单、导航等的数据可以配置,方便修改
9. 最后可以将编写好的项目,直接打包扔给后端,完事

- 接着我就开始学习以下内容
1. 速成了` webpack `(最终放弃使用,可能是学艺不精,发现它打包出来的项目竟是基于js驱动的一个小站点,也就和vue类似,这完全不符合的我初衷,且我想要快,毕竟公司嘛需要的是效率)
2. 速成了` node ` (这是基础语法,node嘛,前端目前比较热门的语言,这个抽空我还是得好好学习学习);
3. 速成` gulp ` (这是为了构建打包使用的,我也为了开发这个小工具才了解到的,原谅作为一个前端竟然才知道这玩意,简直对不起我的岗位(╥╯^╰╥));
4. 速成` art-templatet ` (这个是随便找的一个模板引擎,百度随便搜了下,感觉还不错的样子,觉得符合我的要求);
5. 基于这三大块,我开始开发的我小工具了。
6. 首先,起个服务,这是必须的嘛,要调试就必要要先写个服务,于是结合` koa `写了` wbt.server.js `
7. 来个配置文件,有个服务,肯定得有打包,那这所有的东西总要有个配置文件吧,所以就整了个` wbt.config.js `
8. 接下来就是打包了,这个就用到了我速成的` gulp ` ,简单编写了` gulpfile.js `,说来这个工具真心不错,简单,快速,方便。而且插件也超级丰富。唯一不足的就是` art-templatet `编译插件并不足以满足我的要求,所以我就把` gulp-art `这个插件捣鼓下来修改了下,就有了` gulp-art.js `
9. 最后的我的小工具就弄好了,说来服务那里写的麻烦了点,为了实时编译,我在` gulpfile.js `里面又代{过}{滤}理了一次,这样就整个两个服务。原谅小女子学艺不精,等我把速成变成熟悉的时候我再来完善吧!

## 使用指南
- 将(https://github.com/qc-web-y/WebsiteBuilderTools)下载保存到本地
- 使用 npm 安装依赖: `npm i`
- 项目开发测试运行: `npm run dev` (需要实时热更新运行:`npm run dev:hot`)
- 项目打包输出运行:`npm run build`
- 开始编辑,.art文件语法请参考

## 目录说明
```
> -- src // 开发目录
>   -- assets // 静态资源存放
>      -- images // 图片
>      -- scripts // javascript
>      -- styles // CSS、less、sass等样式
>   -- component// art部分视图存放
>   -- data // 测试数据存放
>   -- views // art模板视图存放

> -- dist // 静态页面打包输出目录
> -- config // 配置目录
>   -- wbt.config.js // 主要配置文件
>   -- wbt.route.js // 路由配置文件
>   -- wbt.server.js // 开发测试服务器配置文件
>   -- gulp-art.js // gulp插件,用于编译art模板文件为html

> -- .gulpfile.js // gulp配置

> -- .gitignore
> -- package.json
> -- package-lock.json
> -- README.md
```

## 配置文档
> wbt.config.js (主要配置)

- artTemplate: 模板引擎选项配置,参考[官方文档]

- fileList: 文件清单,填写相对于`src`开发目录的路径,如:
```
{
    art: 'views', // 表示 art 模板文件所在目录指向:src/views
    img: 'assets/images', // 表示图片文件所在目录指向:src/assets/images
}
```
- output: 输出配置
```
{
file: path.join('dist') // 打包输出的文件路径,使用相对路径
}
```
- devServer: 开发服务配置
```
{
    host: 'localhost',
    port: '8084'
}
```

> wbt.route.js (路由配置)

```
const shareData = require('../src/data/share');
const appMainRoute = [
      {
      // 路由路径
                path: '/',
      // art模板文件名,默认查找wbt.config.js中设置的art文件指向目录中的art文件
                name: 'home',
      // art模板使用数据,自行require
                data: shareData
      }
];
```

## 项目下载



mmnnbbvv005 发表于 2019-4-2 13:30

感谢发布原创作品,吾爱破解论坛因你更精彩!

cn52pojie 发表于 2019-4-2 14:02

谢谢分享

longsui48 发表于 2019-4-2 14:25

🐂 给你点个赞

内裤超人 发表于 2019-4-2 19:59

厉害了。。。

AVenus 发表于 2019-4-3 08:50

正在学习前端,很不错的源码,学习下

ZhuSheng 发表于 2019-4-16 13:20


感谢发布原创作品,吾爱破解论坛因你更精彩!

52cui 发表于 2019-4-19 14:21

厉害了 !!!

lilexy 发表于 2019-4-19 16:25

功能有点强大哦

三帕 发表于 2019-4-26 17:12

小姐姐从事前端多久了
页: [1] 2
查看完整版本: 【Web】前端静态页面开发小工具(WebsiteBuilderTools)