npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

vuexpress

v0.1.9

Published

A framework for webapp

Downloads

4

Readme

Vuexpress

Build Status

Vuexpress 是一个小型的应用框架,用于快速构建 Web App 项目。

Vuexpress 基于Express(4) + Vue(2) + Vuex + Vue Router,内置了构建 Web App 常用的工具和组件。

Vuexpress 目前没有提供编译后的版本,需要调用方自行编译

快速上手

Server

import vuexpress from 'vuexpress/node'
import routes from './routes'
import webpackConfig from '../webpack.conf.js'
import path from 'path'

const app = vuexpress()

app.set('port', '3333')
app.set('webpack', webpackConfig)
app.set('views', path.resolve(__dirname, 'views'))

app.router(routes)

app.start()

Client

import vuexpress from 'vuexpress'
import modules from './store'
import routes from './views'

const app = vuexpress()

app.store(modules)

app.router({
  mode: 'history',
  routes: routes,
  beforeEach(to, from, next) {
    next()
  }
})

app.start()

API - Server

Vuexpress 全局方法

vuexpress()

创建一个 Vuexpress 实例

const app = vuexpress()

http(options, callback)

发起XHR请求,默认支持 Callback 模式,如果调用 then() 方法,会转入 Promise 模式。Promise 模式下,Callback 函数不会触发。此方法支持全局配置,并会对 application/json 响应类型的数据进行 JSON.parse

// Callback 模式
const xhr = http({
  url: 'http://',
  method: 'get',
  headers: {},
  data: {},
  timeout: 0,
  formdata: false
}, callback)

// Promise 模式
xhr.then()

// 中止请求
xhr.abort()

Vuexpress 实例方法

app.set(key, value)

同 Express app.set()

  • port 端口号
  • views 模板目录,Vuexpress 默认使用 Pug 模板引擎
  • webpack Webpack 配置文件,用于开发环境

app.use()

同 Express app.use()

app.static(rootPath)

将 /static 路径设置为静态目录

app.router(routes, middlewares)

简化的的 Router 管理,支持自定义中间件

app.router([
  {
    path // 请求路径,支持正则表达式和字符串
    method // 请求类型,支持 `all`
    formdata // 是否支持 formdata 请求类型
    transport // 请求回调函数
  }
])

Vuexpress 内置了 proxy 中间件,用于快速转发 http 请求

app.router([
  {
    path // 请求路径,支持正则表达式和字符串
    method // 请求类型,支持 `all`
    formdata // 是否支持 formdata 请求类型
    transport // 请求回调函数
    proxy: {
      url // 转发目标路径
      prefilter // 对请求数据进行预处理
      convert // 对请求结果进行处理
    }
  }
], ['proxy'])

自定义中间件

export default function (route, routeSet) {

  return function (req, res, next) {
    ...
  }

}

app.on(eventName, handler)

同 Express app.on

app.start()

启动一个 Server

API - Client

样式

Vuexpress 内部使用 Stylus 预处理器,集成了 Nib 的部分功能,提供了一些全局样式和实用函数

Vuexpress 建议在 750px 下 1rem = 100px

函数

  • debug 开启布局高亮,用于样式调试
  • font-face(filename) 自定义字体,传入不带后缀的字体文件路径,Vuexpress 会默认添加 woff 后缀

自动修复

  • 自动添加 webkit 浏览器前缀
  • 修复 flex 浏览器兼容性

全局样式

  • [data-icon]:before 合体字ICON支持,读取 data-icon 属性值

全局函数

vuexpress()

创建一个 Vuexpress 实例

const app = vuexpress()

http(options, callback)

发起XHR请求,默认支持 Callback 模式,如果调用 then() 方法,会转入 Promise 模式。Promise 模式下,Callback 函数不会触发。此方法支持全局配置,并会对 application/json 响应类型的数据进行 JSON.parse

// Callback 模式
const xhr = http({
  url: 'http://',
  method: 'get',
  headers: {},
  data: {},
  timeout: 0,
  formdata: false
}, callback)

// Promise 模式
xhr.then()

// 中止请求
xhr.abort()

// 全局配置选项
http.setup(options)

Vuexpress 实例方法

app.set(key, value)

自定义配置

#####dock 配置 Dock 栏

app.set('dock', [
  {
    label: 'home',
    icon: 'home',
    path: '/home'
  },
  {
    label: 'user',
    icon: 'profile'
    path: '/user'
  }
])

app.store(modules)

创建 Vuex store 对象,如果忽略参数会返回之前创建的 store 对象, Vuexpress 强制开启 namespace,并且提供了一对默认的 mutation 和 action,称作 update

const app = vuexpress()
// 创建 Vuex store 对象
app.store({
  user: userModule
})
// 访问之前创建的 Vuex store 对象
app.store().state....

app.router(options)

创建 Vue router 实例,beforeEach()beforeResolveafterEach()三个钩子可以作为参数参数

const app = vuexpress()
// 创建 Vue router 实例
app.router({
 mode: 'history',
 beforeEach() {} // 同 router.beforeEach(func)
})
// 访问之前创建的 Vue router 实例
app.router().push...

plugin(factory)

Vue.use()

app.plugin(Vue => {
  ...
})

Vuexpress 不推荐直接操作 Vue 对象,请尽量使用 plugin()

app.on(eventName, handler)

监听程序生命周期钩子事件,包含但不局限于 beforeCreatecreatedbeforeMountmounted

app.on('mounted', () => {
  ...
})

app.start()

创建一个 Vue 实例以启动程序

Vue 组件内方法

$http(options, callback)

同全局 http 方法

License

Licensed under the MIT license