27 lines
816 B
JavaScript
27 lines
816 B
JavaScript
|
const path = require('path')
|
|||
|
const Koa = require('koa')
|
|||
|
const koaCompress = require('koa-compress')
|
|||
|
const compressible = require('compressible')
|
|||
|
const koaStatic = require('./koa/static')
|
|||
|
const SSR = require('./ssr')
|
|||
|
const conf = require('./app')
|
|||
|
|
|||
|
const isProd = process.env.NODE_ENV === 'production'
|
|||
|
|
|||
|
const app = new Koa()
|
|||
|
|
|||
|
app.use(koaCompress({ // 压缩数据
|
|||
|
filter: type => !(/event\-stream/i.test(type)) && compressible(type) // eslint-disable-line
|
|||
|
}))
|
|||
|
|
|||
|
app.use(koaStatic(isProd ? path.resolve(__dirname, '../dist/web') : path.resolve(__dirname, '../public'), {
|
|||
|
maxAge: 30 * 24 * 60 * 60 * 1000
|
|||
|
})) // 配置静态资源目录及过期时间
|
|||
|
|
|||
|
// vue ssr处理,在SSR中处理API
|
|||
|
SSR(app).then(server => {
|
|||
|
server.listen(conf.app.port, '0.0.0.0', () => {
|
|||
|
console.log(`> server is staring...`)
|
|||
|
})
|
|||
|
})
|