ubase-vue

2.3.12 • Public • Published

使用方式

$ vue init litor/ubase2-template project1
cd project1
$ npm install --registry=https://registry.npm.taobao.org
$ npm run dev
$ browser http://localhost:port // port在启动的输出日志中可以看到

注意: 使用上面方式生成的代码中包含框架提供的以下功能的使用方式:

  • vuex的使用
  • 国际化的使用
  • 独立请求的config使用
  • 静态资源asset的使用
  • 内置service的使用
  • proxy的使用

根据自己需要删除不需要的部分

编译环境配置

gulpfile.babel.js配置参数说明

import path from 'path'
import ubase from 'ubase-vue'
 
ubase({
    // 输出路径 相对于项目根目录
    dist:'./www/', 
 
    // 别名 项目可以使用import('statics/...') 方便多级目录下的import
    alias: {  
        'components': path.resolve(__dirname, './src/components'),
        'statics': path.resolve(__dirname, './src/statics')
    },
    
    // 端口 可以不指定;不指定时,将会随机分配一个可用端口
    'port':8081, 
    
    // 配置请求代理, target和marathonID二选一, 推荐配置marathonID;配置marathonID后,每次重启工程会到marathon获取最新到ip和端口
    'proxy': [{ source: '/api/admin', target: 'http://172.16.6.150:8888', marathonID: 'wec-counselor-leave-apps-v0.0.98' }],
    
    // 是否自动加载vue组件(应用目录及components目录),默认为true
    'autoImportVueComponent':true
})

package.json实例

{
  "name": "ubase-vue-example",
  "version": "0.0.1",
  "scripts": {
    "dev": "gulp --debug",
    "build": "gulp -p"
  },
  "babel":{
    "presets": ["es2015","stage-2"],
    "plugins": ["transform-vue-jsx","syntax-async-functions",
      ["transform-runtime", {
        "helpers": false,
        "polyfill": false,
        "regenerator": true,
        "moduleName": "babel-runtime"
      }]]
  },
  "dependencies": {
    "ubase-vue": "^2.3.8"
  }
}

应用入口

src/index.vue和src/routes.js二选一(简单无需路由的应用的可以用src/index.vue作为入口,对于复杂的多路由应用使用routes.js作为入口)

routes.js 模版

import home from './home.vue'

export default [
  {
    path: '/',
    component: home
  }
]

应用目录结构

    src/
    ├── components/
    ├── index.html
    ├── routes.js
    ├── config.json
    ├── service.js
    └── ...
    └── statics/
        ├── images/
        ├── asset/
        └── ...

asset静态资源

src/statics/asset目前下内容会完全拷贝到输出路径下的statics/asset里面,适用与部分不方便import的第三方库,如富文本等;(通过这种方式使用的库,需要在index.html中通过script标签引用)

vuex使用

在应用下新建后缀为".vuex.js"的文件,ubase-vue会自动识别并做vuex的相关配置(这些配置是在底层实现的,不掺合开发者的业务代码,并对开发者不可见)。

在vue中如何使用?

export const state = {
    name: 'wisedu'
}
computed: {
    index(){
        return this.$state.index // index即为index.vuex.js的内容
    },
 }
 
 mounted(){
    console.log(this.index.name) // 输出wisedu
 }

单工程多APP使用

在src目录下新建apps目录,在apps目录下面可以新建多个app目录,app之间相互独立,各自都有自己单独的index.html入口。

    src/
    ├── components/
    ├── apps/
    │   ├── app1
    │   │   ├── index.html
    │   │   ├── routes.js
    │   │   ├── config.json
    │   │   └── ...
    │   ├── app2
    │   │    ├── index.html
    │   │    ├── routes.js
    │   │    ├── config.json
    │   │    └── ...
    │   └── ...
    └── statics/
        ├── images/
        └── ...

单独请求的配置文件

在应用index.html同级目录下,新建config.json文件即可。该文件不会被编译到项目代码中,浏览器访问应用时,会单独请求该文件。方便打包完成后依然需要修改配置的情况。

在vue中如何使用config.json中的配置?

在vue中通过this.$root.config即可访问到config.json中到内容。

国际化使用

在应用下新建后缀为".i18n.js"的文件,ubase-vue会自动识别并做国际化的相关配置

Sample index.i18n.js

var zh_CN = {
  title: 'demo title',
};
 
var en_US = {
  title: 'demo title2',
};
 
export default { zh_CN ,  en_US};
 

在vue文件template中的使用方式:

    <div>{{$t('index.title')}}</div>

在vue文件script中的使用方式:

    this.$t('index.title')

注:当app有多个语言时,在config.json中有一项特殊的配置项"LANG", 可以配置当前需要使用的语言

自动导入app下的vue文件(应用下自己写的vue文件可以在template里直接使用,无需再import)

app下vue自动导入并全局注册(此时需要保证单个app下vue的文件名不能重名),多app模式下,app之间时相互独立的(app之间vue文件可以同名)。 注:自动导入默认开启,如需关闭可在gulpfile.babel.js中配置autoImportVueComponent为false

代理配置

在gulpfile.babel.js中配置proxy项即可

'proxy': [{ source: '/api/', target: 'http://172.16.6.150:8888' }] // 其中/api为需要代理的接口前缀,target是需要代理到的真实服务地址

可用端口自动识别

前端工程启动时,自动识别可用端口,无需指定(多工程开发时如果手动指定容易冲突)

开发接口

window.Ubase.beforeInit

在整个应用挂载开始之前被调用

参数

    {
        config // config.json中的对象
        router // routes.js的内容
        next // 函数 继续往下执行
    }

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
2.3.120latest

Version History

VersionDownloads (Last 7 Days)Published
2.3.120
2.3.110
2.3.90
2.3.80
2.3.70
2.3.60
2.3.50
2.3.40
2.3.30
2.3.20
2.3.10
2.3.00
2.2.00
3.0.10
3.0.00
2.1.70
2.1.60
2.1.40
2.1.30
2.1.20
2.1.10
2.1.00
2.0.290
2.0.280
2.0.270
1.2.10
2.0.260
2.0.250
2.0.240
2.0.230
2.0.220
1.2.00
1.1.440
1.1.430
1.1.420
1.1.410
1.1.400
1.1.390
2.0.210
1.1.380
1.1.370
1.1.360
2.0.200
1.1.350
2.0.190
2.0.180
2.0.170
1.1.340
2.0.160
2.0.150
1.1.330
2.0.140
2.0.130
2.0.120
1.1.320
1.1.310
1.1.300
1.1.290
1.1.280
1.1.270
1.1.260
1.1.240
1.1.230
1.1.220
1.1.210
1.1.200
2.0.110
2.0.100
2.0.90
2.0.80
2.0.70
2.0.60
2.0.50
2.0.40
2.0.30
2.0.20
2.0.10
1.1.190
1.1.180
1.1.170
1.1.160
1.1.150
1.1.140
1.1.130
1.1.120
1.1.110
1.1.100
1.1.90
1.1.80
1.1.70
1.1.60
1.1.50
1.1.40
1.1.30
1.1.20
1.1.10
1.1.00
1.0.700
1.0.690
1.0.680
1.0.670
1.0.660
1.0.650
1.0.640
1.0.630
1.0.620
1.0.610
1.0.600
1.0.590
1.0.580
1.0.570
1.0.560
1.0.550
1.0.540
1.0.530
1.0.520
1.0.510
1.0.500
1.0.490
1.0.480
1.0.470
1.0.460
1.0.450
1.0.440
2.0.00
1.0.430
1.0.420
1.0.410
1.0.400
1.0.390
1.0.380
1.0.352
1.0.330
1.0.320
1.0.310
1.0.300
1.0.290
1.0.280
1.0.273
1.0.260
1.0.250
1.0.240
1.0.230
1.0.220
1.0.214
1.0.200
1.0.190
1.0.180
1.0.170
1.0.160
1.0.150
1.0.140
1.0.130
1.0.120
1.0.110
1.0.100
1.0.90
1.0.80
1.0.70
1.0.60
1.0.50
1.0.40
1.0.30
1.0.20
1.0.10
1.0.00

Package Sidebar

Install

npm i ubase-vue

Weekly Downloads

9

Version

2.3.12

License

ISC

Unpacked Size

290 kB

Total Files

25

Last publish

Collaborators

  • askliujun
  • lisiurday