1.0.14 • Published 4 years ago

mgbox v1.0.14

Weekly downloads
2
License
ISC
Repository
github
Last release
4 years ago

mgbox

背景

现在前端框架很多,一个前端工程师可能要关注很多框架,在团队的项目使用中,很容易就会出现多套框架。给维护和团队学习成本提升很多。基于现在大部分框架都都可以依赖webpack做打包方案,此框架以webpack做依托,通过配置形成多框架、多场景的支持。本框架的目的不是场景可扩展的,相反更多的是场景收敛,也就是说,默认的提供了一套完整的解决方案。提供以下能力:

  • 多框架(vue/react/jquery)
  • ssr(vue/react)*1
  • typescript(vue/react/jquery)
  • 模板引擎(velocity/ejs/pug/handerbars)*2
  • 多种编译模式(本地/hybird/server)
  • 多项目同时编译
  • 项目配置隔离
  • devserver
  • 多app编译
  • mock数据(本地/server/模板数据)
  • 多css预处理器(less/sass/stylus)
  • eslint
  • 公共模板支持
  • es6+/dllplugin/happypack/liveReload
  • cdn(需额外发布支持)*3

    1.ssr仅支持到本地开发,没有提供完整的server方案。
    2.本地开发模拟服务端渲染。
    3.cdn路径在本地编译完成,相关静态资源依赖后续发布。

快速上手

安装使用
建议使用最新版本node

npm i -g mgbox
mkdir xxx
cd xxx
mgbox add

其他说明

工程目录文件结构约定

+build   //核心编译目录。不建议变动,相关修改可以在configs进行  
+configs 
    +.configs //.babelrc .eslintrc postcss ts 等loader相关配置;多项目的配置是隔离的。
    +items //项目编译中的配置项,可以扩展功能
      item1.js 
      item2.js 
    project.config.json  //项目生成时的配置。不能变动,整个编译依赖此配置。
+mocks  
  +item1 
    mock.js //mock入口文件
    app1.js //业务数据
  ...
  +item1-tpl //模板mock数据。目录结构同item1
+src  
  +common//多item共用的组件服务
  +item2
  +item1 //项目名称
    +apps
      +app2
      +app1
        +components
        +services
        index.html //入口文件。必须。可以做模板
        index.js //入口js。后缀为js|ts|tsx|jsx
        index.less //入口css。后缀为less|scss|styl。也可以放到static/styles/app1/index.less。
        server.js //ssr入口js。后缀index.js。ssr项目需要
    +static
      +images
      +fonts
      +styles
        +index
          index.less 
    ...

工程使用说明

mgbox run 
npm run dev

参数说明


缩写补充说明
-i--itemall(默认) : item : item1,item2选择编译的项目
-e--envlocal(默认) : server : client编译环境
-m--modedevelopment(默认):production编译模式
-a--appsall(默认) : app : app1,app2编译app
-D--devserverfalse启用devserver
-M--mockfalse启用本地mock代理。依赖-D
-C--cdnfalse编译cdn
-O--openfalse打开浏览器。依赖-e local -D
-L--eslistfalseeslint检测。依赖-m development
-S--ssrfalse启用ssr

使用示例

mgbox run -i app -a app1,app2 -D -M -O
or
npm run dev -- -i app -a index -D -M 

项目更新

主要是更新构建目录 build

mgbox update

build 目录内的代码不建议变动。一般配置可以在相关的 configs/items/xxx.js里面配置

其他

  1. app访问地址为 http://localhost:xxxxx/app.html
  2. 启用ssr时,访问地址为http://localhost:xxxxx/app
  3. 公共模板支持
...
  +apps
    +commmons
      +tpls
        tpl2.html
        tpl.html 
    +app
      tpl.html //使用公共模板tpl.html
    +app2
      tpl2.html //使用公共模板tpl2.html
    +app3
      index.html //默认入口

commons/tpls/tpl.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="app"></div>
    <!--common-tpl-outlet-->
    //模板替换标志
</body>
</html>

app2/tpl.html

<div> app2 </div>
最终输出
1.0.14

4 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago