Merge branch 'dev' of github.com:Atinux/nuxt.js into dev

This commit is contained in:
Sébastien Chopin 2017-07-30 16:28:26 +02:00
commit 222c737a1d
56 changed files with 501 additions and 627 deletions

View File

@ -158,10 +158,12 @@ Learn more at [nuxtjs.org](https://nuxtjs.org).
## Templates
You can start by using one of our starter templates:
- [starter](https://github.com/nuxt/starter): Basic Nuxt.js project template
- [express](https://github.com/nuxt/express): Nuxt.js + Express
- [koa](https://github.com/nuxt/koa): Nuxt.js + Koa
- [adonuxt](https://github.com/nuxt/adonuxt): Nuxt.js + AdonisJS
- [starter](https://github.com/nuxt-community/starter-template): Basic Nuxt.js project template
- [express](https://github.com/nuxt-community/express-template): Nuxt.js + Express
- [koa](https://github.com/nuxt-community/koa-template): Nuxt.js + Koa
- [adonuxt](https://github.com/nuxt-community/adonuxt-template): Nuxt.js + AdonisJS
- [micro](https://github.com/nuxt-community/micro-template): Nuxt.js + Micro
- [nuxtent](https://github.com/nuxt-community/nuxtent-template): Nuxt.js + Nuxtent module for content heavy sites
## Using nuxt.js programmatically

View File

@ -44,7 +44,7 @@ const builds = {
},
core: {
entry: resolve(libDir, 'core/index.js'),
dest: resolve(distDir, 'core.js')
dest: resolve(distDir, 'core.js'),
}
}
@ -55,7 +55,7 @@ function genConfig (opts) {
const config = {
entry: opts.entry,
dest: opts.dest,
external: ['fs', 'path', 'http'].concat(dependencies, opts.external),
external: ['fs', 'path', 'http', 'module', 'vue-server-renderer/server-plugin', 'vue-server-renderer/client-plugin'].concat(dependencies, opts.external),
format: opts.format || 'cjs',
banner: opts.banner || banner,
moduleName: opts.moduleName || 'Nuxt',

View File

@ -14,9 +14,12 @@ const packageJSON = readJSONSync(resolve(rootDir, 'package.json'))
let requires = [
'source-map-support'
]
const excludes = [
'path',
'fs'
'fs',
'http',
'module'
].concat(Object.keys(packageJSON.devDependencies))
// Parse dist/core.js for all external dependencies

View File

@ -0,0 +1 @@
module.exports = {}

View File

@ -0,0 +1,12 @@
{
"name": "nuxt-custom-server",
"dependencies": {
"express": "^4.15.3",
"nuxt": "^1.0.0-rc3"
},
"scripts": {
"dev": "node server.js",
"build": "nuxt build",
"start": "NODE_ENV=production node server.js"
}
}

View File

@ -0,0 +1,3 @@
<template>
<p>Please look at <code>server.js</code> to see how to use <a href="https://nuxtjs.org">Nuxt.js</a> programmatically.</p>
</template>

View File

@ -1,27 +1,24 @@
const Nuxt = require('../../')
const app = require('express')()
const { Nuxt, Builder } = require('nuxt')
const host = process.env.HOST || '127.0.0.1'
const port = process.env.PORT || 3000
global.fetch = require('node-fetch')
// Import and Set Nuxt.js options
let config = require('./nuxt.config.js')
config.dev = !(process.env.NODE_ENV === 'production')
// Init Nuxt.js
const nuxt = new Nuxt(config)
app.use(nuxt.render)
// Build only in dev mode
// Start build process if
if (config.dev) {
nuxt.build()
.catch((error) => {
console.error(error) // eslint-disable-line no-console
process.exit(1)
})
const builder = new Builder(nuxt)
builder.build()
}
// Listen the server
// Give nuxt middleware to express
app.use(nuxt.render)
// Start express server
app.listen(port, host)
console.log('Server listening on ' + host + ':' + port) // eslint-disable-line no-console
console.log('Server listening on ' + host + ':' + port)

View File

@ -1,7 +1,7 @@
# WIP
# Vue-Apollo with Nuxt.js
https://nuxtjs.org/examples/vue-apollo
Demo: https://nuxt-vue-apollo.now.sh/
https://github.com/nuxt-community/apollo-module
https://github.com/Akryum/vue-apollo

View File

@ -1,7 +0,0 @@
export default async function ({ isServer, apolloProvider }) {
if (isServer) {
const ensureReady = apolloProvider.collect()
console.log('Call ensureReady!', ensureReady())
await ensureReady()
}
}

View File

@ -1,12 +1,8 @@
module.exports = {
build: {
vendor: ['vue-apollo', 'apollo-client']
},
router: {
middleware: 'apollo'
},
plugins: [
// Will inject the plugin in the $root app and also in the context as `apolloProvider`
{ src: '~plugins/apollo.js', injectAs: 'apolloProvider' }
]
modules: ['@nuxtjs/apollo'],
apollo: {
clients: {
default: 'https://api.graph.cool/simple/v1/cj1dqiyvqqnmj0113yuqamkuu'
}
}
}

View File

@ -1,13 +1,12 @@
{
"name": "nuxt-i18n",
"name": "nuxt-vue-apollo",
"dependencies": {
"apollo-client": "^1.0.3",
"nuxt": "latest",
"vue-apollo": "^2.1.0-beta.2"
"@nuxtjs/apollo": "^0.1.0",
"nuxt": "^1.0.0-rc2"
},
"scripts": {
"dev": "node server.js",
"dev": "nuxt",
"build": "nuxt build",
"start": "cross-env NODE_ENV=production node server.js"
"start": "nuxt start"
}
}

View File

@ -0,0 +1,41 @@
<template>
<div v-if="Car">
<h3>{{ Car.make }} {{ Car.model }}</h3>
<p>{{ formatCurrency(Car.price) }}</p>
<img :src="Car.photoURL" :alt="`${Car.model} photo`">
<p><nuxt-link to="/">Home page</nuxt-link></p>
</div>
</template>
<script>
import car from '~/queries/car'
export default {
apollo: {
Car: {
query: car,
prefetch: ({ route }) => ({ id: route.params.id }),
variables() {
return { id: this.$route.params.id }
}
}
},
methods: {
formatCurrency(num) {
const formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
minimumFractionDigits: 2
})
return formatter.format(num)
}
}
}
</script>
<style>
img {
max-width: 600px;
}
</style>

View File

@ -12,22 +12,15 @@
</template>
<script>
import client from '~plugins/apollo'
import gql from 'graphql-tag'
import allCars from '~/queries/allCars'
export default {
apollo: {
allCars: gql`
query {
allCars {
id
make
model
year
allCars: {
prefetch: true,
query: allCars
}
}
`
}
}
</script>

View File

@ -1,21 +0,0 @@
import 'babel-polyfill'
import Vue from 'vue'
import VueApollo from 'vue-apollo'
import { ApolloClient, createNetworkInterface } from 'apollo-client'
Vue.use(VueApollo)
const API_ENDPOINT = 'https://api.graph.cool/simple/v1/cj1dqiyvqqnmj0113yuqamkuu'
const apolloClient = new ApolloClient({
networkInterface: createNetworkInterface({
uri: API_ENDPOINT,
transportBatching: true
})
})
const apolloProvider = new VueApollo({
defaultClient: apolloClient
})
export default apolloProvider

View File

@ -0,0 +1,8 @@
{
allCars {
id
make
model
year
}
}

View File

@ -0,0 +1,8 @@
query Car($id: ID!) {
Car(id: $id) {
make
model
photoURL
price
}
}

View File

@ -1,29 +0,0 @@
# nuxt-with-apollo
> Nuxt.js with Apollo (GraphQL client)
[DEMO](https://nuxt-apollo.now.sh/)
## About
This project uses [Apollo](http://www.apollodata.com/) as a GraphQL client and [Graphcool](https://www.graph.cool/) as a hosted GraphQL backend.
## Getting Started
Download this example [or clone the repo](https://github.com/nuxt/nuxt.js):
```bash
curl https://codeload.github.com/nuxt/nuxt.js/tar.gz/master | tar -xz --strip=2 nuxt.js-master/examples/with-apollo
cd with-apollo
```
Install and run:
```bash
npm install
npm run dev
# or with Yarn
yarn
yarn dev
```

View File

@ -1,19 +0,0 @@
<template>
<div>
<h1 @click="$router.push('/')">Nuxt.js + Apollo</h1>
<nuxt/>
</div>
</template>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
padding: 30px;
}
h1 {
cursor: pointer;
}
</style>

View File

@ -1,13 +0,0 @@
<template>
<div class="container">
<h3 v-if="error.statusCode === 404">Page not found</h3>
<h3 v-else>An error occured</h3>
<nuxt-link to="/">&larr; Home page</nuxt-link>
</div>
</template>
<script>
export default {
props: ['error']
}
</script>

View File

@ -1,24 +0,0 @@
{
"name": "nuxt-apollo",
"version": "1.0.0",
"description": "Nuxt.js with Apollo",
"author": "Charlie Hield",
"license": "MIT",
"scripts": {
"dev": "nuxt",
"build": "nuxt build",
"start": "nuxt start"
},
"keywords": [
"nuxt",
"vue",
"apollo",
"graphql"
],
"dependencies": {
"apollo-client": "^1.0.2",
"graphql-tag": "^2.0.0",
"isomorphic-fetch": "^2.2.1",
"nuxt": "^0.10.5"
}
}

View File

@ -1,54 +0,0 @@
<template>
<div>
<h3>{{ car.make }} {{ car.model }}</h3>
<p>{{ formatCurrency(car.price) }}</p>
<img :src="car.photoURL" :alt="`${car.model} photo`">
<p><nuxt-link to="/">Home page</nuxt-link></p>
</div>
</template>
<script>
import client from '~plugins/apollo'
import gql from 'graphql-tag'
export default {
async asyncData({ params }) {
let { data } = await client.query({
query: gql`
query {
Car(id: "${params.id}") {
make
model
photoURL
price
}
}
`
})
return {
car: data.Car
}
},
methods: {
formatCurrency(num) {
const formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
minimumFractionDigits: 2
})
return formatter.format(num)
}
}
}
</script>
<style>
img {
max-width: 600px;
}
</style>

View File

@ -1,59 +0,0 @@
<template>
<div>
<h3>Cars</h3>
<ul>
<li v-for="car in cars">
<nuxt-link :to="`car/${car.id}`">
{{ car.year }} {{ car.make }} {{ car.model }}
</nuxt-link>
</li>
</ul>
</div>
</template>
<script>
import client from '~plugins/apollo'
import gql from 'graphql-tag'
export default {
async asyncData() {
let { data } = await client.query({
query: gql`
query {
allCars {
id
make
model
year
}
}
`
})
return {
cars: data.allCars
}
}
}
</script>
<style>
ul {
list-style-type: none;
margin: 0;
padding: 0;
line-height: 1.6;
}
a {
text-decoration: none;
color: #3498DB;
}
a:hover {
border-bottom: 1px solid;
}
</style>

View File

@ -1,15 +0,0 @@
import Vue from 'vue'
import { ApolloClient, createNetworkInterface } from 'apollo-client'
import 'isomorphic-fetch'
// Created with Graphcool - https://www.graph.cool/
const API_ENDPOINT = 'https://api.graph.cool/simple/v1/cj1dqiyvqqnmj0113yuqamkuu'
const apolloClient = new ApolloClient({
networkInterface: createNetworkInterface({
uri: API_ENDPOINT,
transportBatching: true
})
})
export default apolloClient

View File

@ -8,7 +8,7 @@
<script>
<% if (loading) { %>import NuxtLoading from '<%= (typeof loading === "string" ? loading : "./components/nuxt-loading.vue") %>'<% } %>
<% css.forEach(function (c) { %>
import '<%= wp(c.src || c) %>'
import '<%= relativeToBuild(resolvePath(c.src || c)) %>'
<% }) %>
let layouts = {

View File

@ -182,9 +182,8 @@ async function render (to, from, next) {
<% if (store) { %>store,<% } %>
isClient: true,
next: _next.bind(this),
error: this.error.bind(this),
app
})
error: this.error.bind(this)
}, app)
this._context = context
this._dateLastError = this.$options._nuxt.dateErr
this._hadError = !!this.$options._nuxt.err
@ -199,7 +198,7 @@ async function render (to, from, next) {
if (context._redirected) return
// Load layout for error page
layout = await this.loadLayout(typeof NuxtError.layout === 'function' ? NuxtError.layout(context) : NuxtError.layout)
const layout = await this.loadLayout(typeof NuxtError.layout === 'function' ? NuxtError.layout(context) : NuxtError.layout)
await callMiddleware.call(this, Components, context, layout)
if (context._redirected) return

View File

@ -7,7 +7,7 @@ import NuxtLink from './components/nuxt-link.js'
import NuxtError from '<%= components.ErrorPage ? components.ErrorPage : "./components/nuxt-error.vue" %>'
import Nuxt from './components/nuxt.vue'
import App from '<%= appPath %>'
import { getContext } from './utils'
import { getContext, getLocation } from './utils'
<% if (store) { %>import { createStore } from './store.js'<% } %>
<% plugins.forEach(plugin => { %>import <%= plugin.name %> from '<%= plugin.name %>'
<% }) %>
@ -99,16 +99,21 @@ async function createApp (ssrContext) {
}
const next = ssrContext ? ssrContext.next : location => app.router.push(location)
let route = router.currentRoute
if (!ssrContext) {
const path = getLocation(router.options.base)
route = router.resolve(path).route
}
const ctx = getContext({
isServer: !!ssrContext,
isClient: !ssrContext,
route: router.currentRoute,
route,
next,
error: app._nuxt.error.bind(app),
<% if(store) { %>store,<% } %>
req: ssrContext ? ssrContext.req : undefined,
res: ssrContext ? ssrContext.res : undefined,
beforeRenderFns: ssrContext ? ssrContext.beforeRenderFns : undefined
}, app)
<% plugins.filter(p => p.ssr).forEach(plugin => { %>

View File

@ -45,6 +45,7 @@ export default async context => {
// Create context.next for simulate next() of beforeEach() when wanted to redirect
context.redirected = false
context.next = createNext(context)
context.beforeRenderFns = []
const { app, router<%= (store ? ', store' : '') %> } = await createApp(context)
const _app = new Vue(app)
@ -210,6 +211,8 @@ export default async context => {
context.nuxt.state = store.state
<% } %>
await Promise.all(context.beforeRenderFns.map((fn) => promisify(fn, { Components, nuxtState: context.nuxt })))
// If no error, return main app
if (!context.nuxt.error) {
return _app

View File

@ -104,6 +104,9 @@ export function getContext (context, app) {
if (context.req) ctx.req = context.req
if (context.res) ctx.res = context.res
if (context.from) ctx.from = context.from
if (ctx.isServer && context.beforeRenderFns) {
ctx.beforeNuxtRender = (fn) => context.beforeRenderFns.push(fn)
}
return ctx
}

View File

@ -49,7 +49,7 @@ export default class Builder extends Tapable {
get plugins () {
return this.options.plugins.map((p, i) => {
if (typeof p === 'string') p = { src: p }
p.src = r(this.options.srcDir, p.src)
p.src = this.nuxt.resolvePath(p.src)
return { src: p.src, ssr: (p.ssr !== false), name: `plugin${i}` }
})
}
@ -242,6 +242,7 @@ export default class Builder extends Tapable {
hash,
r,
wp,
resolvePath: this.nuxt.resolvePath.bind(this.nuxt),
relativeToBuild: this.relativeToBuild
}
})
@ -328,7 +329,7 @@ export default class Builder extends Tapable {
this.compiler.plugin('done', async stats => {
// Don't reload failed builds
/* istanbul ignore if */
if (stats.hasErrors() || stats.hasWarnings()) {
if (stats.hasErrors()) {
return
}
// Reload renderer if available

View File

@ -35,7 +35,7 @@ export default class Generator extends Tapable {
await this.builder.build()
}
await this.nuxt.applyPluginsAsync('generate', this)
await this.nuxt.applyPluginsAsync('generator', this)
// Initialize dist directory
if (init) {

View File

@ -5,3 +5,8 @@ export default {
Builder,
Generator
}
export {
Builder,
Generator
}

View File

@ -116,6 +116,20 @@ export default function webpackBaseConfig ({ isClient, isServer }) {
)
}
// Workaround for hiding Warnings about plugins without a default export (#1179)
config.plugins.push({
apply (compiler) {
compiler.plugin('done', stats => {
stats.compilation.warnings = stats.compilation.warnings.filter(warn => {
if (warn.name === 'ModuleDependencyWarning' && warn.message.includes(`export 'default'`) && warn.message.includes('plugin')) {
return false
}
return true
})
})
}
})
// --------------------------------------
// Dev specific config
// --------------------------------------

View File

@ -15,7 +15,7 @@ export default function ({ isClient }) {
'js': 'babel-loader?' + babelOptions,
'css': styleLoader.call(this, 'css'),
'less': styleLoader.call(this, 'less', 'less-loader'),
'sass': styleLoader.call(this, 'sass', 'sass-loader?indentedSyntax&?sourceMap'),
'sass': styleLoader.call(this, 'sass', 'sass-loader?indentedSyntax&sourceMap'),
'scss': styleLoader.call(this, 'sass', 'sass-loader?sourceMap'),
'stylus': styleLoader.call(this, 'stylus', 'stylus-loader'),
'styl': styleLoader.call(this, 'stylus', 'stylus-loader')

View File

@ -1,5 +1,12 @@
import * as Utils from './utils'
import Options from './options'
export default {
Utils
Utils,
Options
}
export {
Utils,
Options
}

View File

@ -22,7 +22,7 @@ export default function Options (_options) {
}
// Apply defaults
_.defaultsDeep(options, defaultOptions)
_.defaultsDeep(options, Options.defaults)
// Resolve dirs
options.rootDir = (typeof options.rootDir === 'string' && options.rootDir ? options.rootDir : process.cwd())
@ -38,7 +38,7 @@ export default function Options (_options) {
// Ignore publicPath on dev
/* istanbul ignore if */
if (options.dev && isUrl(options.build.publicPath)) {
options.build.publicPath = defaultOptions.build.publicPath
options.build.publicPath = Options.defaults.build.publicPath
}
// If store defined, update store options to true unless explicitly disabled
@ -52,7 +52,7 @@ export default function Options (_options) {
mode = mode()
}
if (typeof mode === 'string') {
mode = Modes[mode]
mode = Options.modes[mode]
}
// Apply mode
@ -61,7 +61,7 @@ export default function Options (_options) {
return options
}
const Modes = {
Options.modes = {
universal: {
build: {
ssr: true
@ -88,7 +88,7 @@ const Modes = {
}
}
export const defaultOptions = {
Options.defaults = {
mode: 'universal',
dev: process.env.NODE_ENV !== 'production',
buildDir: '.nuxt',
@ -107,7 +107,7 @@ export const defaultOptions = {
vendor: [],
plugins: [],
babel: {},
postcss: [],
postcss: undefined,
templates: [],
watch: [],
devMiddleware: {},

View File

@ -1,13 +1,20 @@
import Options from './options'
import ModuleContainer from './module'
import { Options, Utils } from 'common'
import Module from './module'
import Nuxt from './nuxt'
import Renderer from './renderer'
import * as Utils from 'utils'
export default {
Options,
ModuleContainer,
Nuxt,
Module,
Renderer,
Options,
Utils
}
export {
Nuxt,
Module,
Renderer,
Options,
Utils
}

View File

@ -18,7 +18,7 @@ export default class ModuleContainer extends Tapable {
async _ready () {
await sequence(this.options.modules, this.addModule.bind(this))
await this.nuxt.applyPluginsAsync('module', this)
await this.applyPluginsAsync('ready', this)
}
addVendor (vendor) {

View File

@ -1,10 +1,11 @@
import Tapable from 'tappable'
import chalk from 'chalk'
import { Options } from 'common'
import ModuleContainer from './module'
import Renderer from './renderer'
import Options from './options'
import Debug from 'debug'
import enableDestroy from 'server-destroy'
import Module from 'module'
import { join, resolve } from 'path'
const debug = Debug('nuxt:')
@ -16,6 +17,9 @@ export default class Nuxt extends Tapable {
this.options = Options(_options)
// Paths for resolving requires from `rootDir`
this.nodeModulePaths = Module._nodeModulePaths(this.options.rootDir)
this.initialized = false
this.errorHandler = this.errorHandler.bind(this)
@ -70,7 +74,7 @@ export default class Nuxt extends Tapable {
})
}))
resolve()
resolve(this.applyPluginsAsync('listen', { server, port, host }))
})
// Add server.destroy(cb) method
@ -101,7 +105,7 @@ export default class Nuxt extends Tapable {
resolvePath (path) {
// Try to resolve using NPM resolve path first
try {
let resolvedPath = require.resolve(path)
let resolvedPath = Module._resolveFilename(path, { paths: this.nodeModulePaths })
return resolvedPath
} catch (e) {
// Just continue

View File

@ -11,9 +11,9 @@ import { join, resolve } from 'path'
import fs from 'fs-extra'
import { createBundleRenderer } from 'vue-server-renderer'
import { encodeHtml, getContext, setAnsiColors, isUrl } from 'utils'
import { defaultOptions } from './options'
import Debug from 'debug'
import connect from 'connect'
import { Options } from 'common'
const debug = Debug('nuxt:render')
debug.color = 4 // Force blue color
@ -46,14 +46,12 @@ export default class Renderer extends Tapable {
spaTemplate: null,
errorTemplate: parseTemplate('<pre>{{ stack }}</pre>') // Will be loaded on ready
}
// Bind middleware to this context
this.nuxtMiddleware = this.nuxtMiddleware.bind(this)
this.errorMiddleware = this.errorMiddleware.bind(this)
}
async _ready () {
// Setup all middleWare
await this.nuxt.applyPluginsAsync('renderer', this)
// Setup nuxt middleware
await this.setupMiddleware()
// Load error template
@ -67,7 +65,8 @@ export default class Renderer extends Tapable {
await this.loadResources()
}
await this.nuxt.applyPluginsAsync('renderer', this)
// Call ready plugin
await this.applyPluginsAsync('ready', this)
}
async loadResources (_fs = fs) {
@ -197,7 +196,7 @@ export default class Renderer extends Tapable {
if (!this.options.dev) {
const distDir = resolve(this.options.buildDir, 'dist')
this.useMiddleware({
path: isUrl(this.options.build.publicPath) ? defaultOptions.build.publicPath : this.options.build.publicPath,
path: isUrl(this.options.build.publicPath) ? Options.defaults.build.publicPath : this.options.build.publicPath,
handler: serveStatic(distDir, {
index: false, // Don't serve index.html template
maxAge: (this.options.dev ? 0 : '1y') // 1 year in production
@ -211,10 +210,10 @@ export default class Renderer extends Tapable {
})
// Finally use nuxtMiddleware
this.useMiddleware(this.nuxtMiddleware)
this.useMiddleware(this.nuxtMiddleware.bind(this))
// Error middleware for errors that occurred in middleware that declared above
this.useMiddleware(this.errorMiddleware)
this.useMiddleware(this.errorMiddleware.bind(this))
}
async nuxtMiddleware (req, res, next) {

View File

@ -1,6 +1,6 @@
{
"name": "nuxt",
"version": "1.0.0-alpha.4",
"version": "1.0.0-rc3",
"description": "A minimalistic framework for server-rendered Vue.js applications (inspired by Next.js)",
"contributors": [
{
@ -94,25 +94,21 @@
"lodash": "^4.17.4",
"memory-fs": "^0.4.1",
"minimist": "^1.2.0",
"offline-plugin": "^4.8.3",
"opencollective": "^1.0.3",
"pify": "^3.0.0",
"preload-webpack-plugin": "^1.2.2",
"progress-bar-webpack-plugin": "^1.10.0",
"script-ext-html-webpack-plugin": "^1.8.3",
"serialize-javascript": "^1.3.0",
"serve-static": "^1.12.3",
"server-destroy": "^1.0.1",
"source-map-support": "^0.4.15",
"tapable": "^0.2.6",
"tappable": "^1.1.0",
"url-loader": "^0.5.9",
"vue": "~2.4.1",
"vue": "~2.4.2",
"vue-loader": "^13.0.1",
"vue-meta": "^1.0.4",
"vue-router": "^2.7.0",
"vue-server-renderer": "~2.4.1",
"vue-ssr-html-stream": "^2.2.0",
"vue-template-compiler": "~2.4.1",
"vue-server-renderer": "~2.4.2",
"vue-template-compiler": "~2.4.2",
"vuex": "^2.3.1",
"webpack": "^3.3.0",
"webpack-bundle-analyzer": "^2.8.2",
@ -132,16 +128,17 @@
"codecov": "^2.2.0",
"copy-webpack-plugin": "^4.0.1",
"cross-env": "^5.0.1",
"eslint": "^4.2.0",
"eslint": "^4.3.0",
"eslint-config-standard": "^10.2.1",
"eslint-plugin-html": "^3.1.0",
"eslint-plugin-html": "^3.1.1",
"eslint-plugin-import": "^2.6.1",
"eslint-plugin-node": "^5.1.0",
"eslint-plugin-node": "^5.1.1",
"eslint-plugin-promise": "^3.5.0",
"eslint-plugin-standard": "^3.0.1",
"express": "^4.15.3",
"finalhandler": "^1.0.3",
"jsdom": "^11.1.0",
"json-loader": "^0.5.4",
"json-loader": "^0.5.6",
"nyc": "^11.0.3",
"request": "^2.81.0",
"request-promise-native": "^1.0.4",
@ -153,7 +150,6 @@
"rollup-plugin-node-resolve": "^3.0.0",
"rollup-plugin-replace": "^1.1.1",
"rollup-watch": "^4.3.1",
"server-destroy": "^1.0.1",
"std-mocks": "^1.0.1",
"uglify-js": "^3.0.23"
},

View File

@ -1,6 +1,6 @@
{
"name": "nuxt-start",
"version": "1.0.0-alpha.4",
"version": "1.0.0-rc3",
"description": "runtime-only build for nuxt",
"contributors": [
{
@ -61,8 +61,9 @@
"serve-static": "^1.12.3",
"compression": "^1.7.0",
"fs-extra": "^4.0.0",
"vue-server-renderer": "~2.4.1",
"connect": "^3.6.2"
"vue-server-renderer": "~2.4.2",
"connect": "^3.6.2",
"server-destroy": "^1.0.1"
},
"collective": {
"type": "opencollective",

View File

@ -6,7 +6,6 @@ test('Fail with routes() which throw an error', async t => {
const options = {
rootDir: resolve(__dirname, 'fixtures/basic'),
dev: false,
runBuild: true,
generate: {
async routes () {
throw new Error('Not today!')

View File

@ -18,7 +18,6 @@ test.before('Init Nuxt.js', async t => {
let config = require(resolve(rootDir, 'nuxt.config.js'))
config.rootDir = rootDir
config.dev = false
config.runBuild = true
nuxt = new Nuxt(config)
const builder = new Builder(nuxt)
const generator = new Generator(nuxt, builder)

View File

@ -13,8 +13,7 @@ let nuxt = null
test.before('Init Nuxt.js', async t => {
const options = {
rootDir: resolve(__dirname, 'fixtures/basic'),
dev: false,
runBuild: true
dev: false
}
nuxt = new Nuxt(options)
await new Builder(nuxt).build()
@ -102,6 +101,11 @@ test('/redirect -> check redirected source', async t => {
t.true(html.includes('<h1>Index page</h1>'))
})
test('/special-state -> check window.__NUXT__.test = true', async t => {
const window = await nuxt.renderAndGetWindow(url('/special-state'))
t.is(window.__NUXT__.test, true)
})
test('/error', async t => {
try {
await nuxt.renderRoute('/error', { req: {}, res: {} })

View File

@ -11,8 +11,7 @@ let nuxt = null
test.before('Init Nuxt.js', async t => {
const options = {
rootDir: resolve(__dirname, 'fixtures/children'),
dev: false,
runBuild: true
dev: false
}
nuxt = new Nuxt(options)
await new Builder(nuxt).build()

View File

@ -9,8 +9,7 @@ const readFile = pify(fs.readFile)
test.before('Init Nuxt.js', async t => {
const nuxt = new Nuxt({
rootDir: resolve(__dirname, 'fixtures/dynamic-routes'),
dev: false,
runBuild: true
dev: false
})
await new Builder(nuxt).build()
})

View File

@ -11,8 +11,7 @@ let nuxt = null
test.before('Init Nuxt.js', async t => {
const options = {
rootDir: resolve(__dirname, 'fixtures/error'),
dev: false,
runBuild: true
dev: false
}
nuxt = new Nuxt(options)
await new Builder(nuxt).build()

40
test/express.test.js Normal file
View File

@ -0,0 +1,40 @@
import test from 'ava'
import { resolve } from 'path'
import { Nuxt, Builder } from '../index.js'
import express from 'express'
import rp from 'request-promise-native'
const port = 4000
const url = (route) => 'http://localhost:' + port + route
let nuxt
let app
// Init nuxt.js and create express server
test.before('Init Nuxt.js', async t => {
const options = {
rootDir: resolve(__dirname, 'fixtures/basic'),
dev: false
}
// Create nuxt instace
nuxt = new Nuxt(options)
// Build
await new Builder(nuxt).build()
// Create express app
app = express()
// Register nuxt
app.use(nuxt.render)
// Start listening on localhost:4000
app.listen(port)
})
test('/stateless with express', async t => {
const html = await rp(url('/stateless'))
t.true(html.includes('<h1>My component!</h1>'))
})

View File

@ -0,0 +1,15 @@
<template>
<h1>Special state in `window.__NUXT__`</h1>
</template>
<script>
export default {
fetch ({ isServer, beforeNuxtRender }) {
if (isServer) {
beforeNuxtRender(({ nuxtState }) => {
nuxtState.test = true
})
}
}
}
</script>

View File

@ -2,7 +2,7 @@ module.exports = function () {
let ctr = 1
// Add hook for module
this.nuxt.plugin('module', moduleContainer => {
this.plugin('ready', moduleContainer => {
this.nuxt.__module_hook = moduleContainer && ctr++
})

View File

@ -14,7 +14,7 @@ module.exports = {
transition: 'test',
offline: true,
plugins: [
'~/plugins/test.js', // Use ~ for deprication warning coverage
'~/plugins/test.js',
{ src: '~/plugins/only-client.js', ssr: false }
],
loading: '~/components/loading',

View File

@ -20,7 +20,6 @@ test.serial('Nuxt.js Instance', async t => {
test.serial('Fail to build when no pages/ directory but is in the parent', t => {
const nuxt = new Nuxt({
dev: false,
runBuild: true,
rootDir: resolve(__dirname, 'fixtures', 'empty', 'pages')
})
return new Builder(nuxt).build().catch(err => {
@ -33,7 +32,6 @@ test.serial('Fail to build when no pages/ directory but is in the parent', t =>
test.serial('Fail to build when no pages/ directory', t => {
const nuxt = new Nuxt({
dev: false,
runBuild: true,
rootDir: resolve(__dirname)
})
return new Builder(nuxt).build().catch(err => {

View File

@ -14,7 +14,6 @@ test.before('Init Nuxt.js', async t => {
let config = require(resolve(rootDir, 'nuxt.config.js'))
config.rootDir = rootDir
config.dev = false
config.runBuild = true
nuxt = new Nuxt(config)
await new Builder(nuxt).build()

View File

@ -62,10 +62,9 @@ test('unique responses with component', async t => {
await uniqueTest(t, '/component')
})
test.todo('unique responses with async components (wait Vue 2.4)')
// test('unique responses with async components', async t => {
// await uniqueTest(t, '/asyncComponent')
// })
test('unique responses with async components', async t => {
await uniqueTest(t, '/asyncComponent')
})
test('unique responses with asyncData()', async t => {
await uniqueTest(t, '/asyncData')

View File

@ -14,7 +14,6 @@ test.before('Init Nuxt.js', async t => {
let config = require(resolve(rootDir, 'nuxt.config.js'))
config.rootDir = rootDir
config.dev = false
config.runBuild = true
nuxt = new Nuxt(config)
await new Builder(nuxt).build()

379
yarn.lock
View File

@ -45,8 +45,8 @@
arrify "^1.0.1"
"@types/node@^6.0.46":
version "6.0.84"
resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.84.tgz#193ffe5a9f42864d425ffd9739d95b753c6a1eab"
version "6.0.85"
resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.85.tgz#ec02bfe54a61044f2be44f13b389c6a0e8ee05ae"
abab@^1.0.3:
version "1.0.3"
@ -164,10 +164,10 @@ ansi-styles@^2.2.1:
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
ansi-styles@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.1.0.tgz#09c202d5c917ec23188caa5c9cb9179cd9547750"
version "3.2.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
dependencies:
color-convert "^1.0.0"
color-convert "^1.9.0"
ansi-styles@~1.0.0:
version "1.0.0"
@ -932,8 +932,8 @@ babel-plugin-transform-strict-mode@^6.24.1:
babel-types "^6.24.1"
babel-plugin-transform-vue-jsx@^3.1.2:
version "3.4.3"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-3.4.3.tgz#de57d8dd7d619333c981867728f3e6fdf68982ff"
version "3.5.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-3.5.0.tgz#6b1ad29351ad753919403675f0bf8b2a43e17671"
dependencies:
esutils "^2.0.2"
@ -1068,8 +1068,8 @@ babel-register@^6.24.1:
source-map-support "^0.4.2"
babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.22.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b"
version "6.25.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.25.0.tgz#33b98eaa5d482bb01a8d1aa6b437ad2b01aec41c"
dependencies:
core-js "^2.4.0"
regenerator-runtime "^0.10.0"
@ -1134,8 +1134,8 @@ big.js@^3.1.3:
resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978"
binary-extensions@^1.0.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774"
version "1.9.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.9.0.tgz#66506c16ce6f4d6928a5b3cd6a33ca41e941e37b"
block-stream@*:
version "0.0.9"
@ -1166,8 +1166,8 @@ boom@2.x.x:
hoek "2.x.x"
boxen@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.2.0.tgz#03478d84be7fe02189b80904d81d6a80384368f1"
version "1.2.1"
resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.2.1.tgz#0f11e7fe344edb9397977fc13ede7f64d956481d"
dependencies:
ansi-align "^2.0.0"
camelcase "^4.0.0"
@ -1261,11 +1261,11 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
electron-to-chromium "^1.2.7"
browserslist@^2.1.2, browserslist@^2.1.5:
version "2.2.0"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.2.0.tgz#5e35ec993e467c6464b8cb708447386891de9f50"
version "2.2.2"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.2.2.tgz#e9b4618b8a01c193f9786beea09f6fd10dbe31c3"
dependencies:
caniuse-lite "^1.0.30000701"
electron-to-chromium "^1.3.15"
caniuse-lite "^1.0.30000704"
electron-to-chromium "^1.3.16"
buf-compare@^1.0.0:
version "1.0.1"
@ -1366,12 +1366,12 @@ caniuse-api@^1.5.2:
lodash.uniq "^4.5.0"
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
version "1.0.30000701"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000701.tgz#2e32b06993bf3dbd90b43d93f04e26d11afddcba"
version "1.0.30000708"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000708.tgz#c2e736bd3b7fc5f6c14e4c6dfe62b98ed15e8a5b"
caniuse-lite@^1.0.30000697, caniuse-lite@^1.0.30000701:
version "1.0.30000701"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000701.tgz#9d673cf6b74dcb3d5c21d213176b011ac6a45baa"
caniuse-lite@^1.0.30000697, caniuse-lite@^1.0.30000704:
version "1.0.30000708"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000708.tgz#71dbf388c57f379b1bb66c89a890edc04c2509b6"
capture-stack-trace@^1.0.0:
version "1.0.0"
@ -1410,7 +1410,7 @@ chalk@^0.4.0:
has-color "~0.1.0"
strip-ansi "~0.1.0"
chalk@^2.0.1:
chalk@^2.0.0, chalk@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.0.1.tgz#dbec49436d2ae15f536114e76d14656cdbc0f44d"
dependencies:
@ -1445,8 +1445,8 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
safe-buffer "^5.0.1"
circular-json@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d"
version "0.3.3"
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
clap@^1.0.9:
version "1.2.0"
@ -1483,10 +1483,10 @@ cli-spinners@^1.0.0:
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.0.0.tgz#ef987ed3d48391ac3dab9180b406a742180d6e6a"
cli-truncate@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.0.0.tgz#21eb91f47b3f6560f004db77a769b4668d9c5518"
version "1.1.0"
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz#2b2dfd83c53cfd3572b87fc4d430a808afb04086"
dependencies:
slice-ansi "0.0.4"
slice-ansi "^1.0.0"
string-width "^2.0.0"
cli-width@^2.0.0:
@ -1551,7 +1551,7 @@ codecov@^2.2.0:
request "2.79.0"
urlgrey "0.4.4"
color-convert@^1.0.0, color-convert@^1.3.0:
color-convert@^1.3.0, color-convert@^1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
dependencies:
@ -1593,11 +1593,9 @@ combined-stream@^1.0.5, combined-stream@~1.0.5:
dependencies:
delayed-stream "~1.0.0"
commander@2.9.x, commander@^2.9.0, commander@~2.9.0:
version "2.9.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
dependencies:
graceful-readlink ">= 1.0.0"
commander@2.11.x, commander@^2.9.0, commander@~2.11.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
common-path-prefix@^1.0.0:
version "1.0.0"
@ -1661,8 +1659,8 @@ config-chain@~1.1.5:
proto-list "~1.2.1"
configstore@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.0.tgz#45df907073e26dfa1cf4b2d52f5b60545eaa11d1"
version "3.1.1"
resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90"
dependencies:
dot-prop "^4.1.0"
graceful-fs "^4.1.2"
@ -1761,8 +1759,8 @@ core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
cosmiconfig@^2.1.0, cosmiconfig@^2.1.1:
version "2.1.3"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.1.3.tgz#952771eb0dddc1cb3fa2f6fbe51a522e93b3ee0a"
version "2.2.2"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892"
dependencies:
is-directory "^0.3.1"
js-yaml "^3.4.3"
@ -1812,7 +1810,7 @@ cross-env@^5.0.1:
cross-spawn "^5.1.0"
is-windows "^1.0.0"
cross-spawn@^4, cross-spawn@^4.0.0:
cross-spawn@^4:
version "4.0.2"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
dependencies:
@ -2014,7 +2012,7 @@ deep-equal@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
deep-extend@^0.4.0, deep-extend@~0.4.0:
deep-extend@~0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
@ -2168,8 +2166,8 @@ domutils@^1.5.1:
domelementtype "1"
dot-prop@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.1.1.tgz#a8493f0b7b5eeec82525b5c7587fa7de7ca859c1"
version "4.2.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
dependencies:
is-obj "^1.0.0"
@ -2200,13 +2198,13 @@ ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
ejs@^2.3.4, ejs@^2.5.6:
ejs@^2.5.6:
version "2.5.6"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.6.tgz#479636bfa3fe3b1debd52087f0acb204b4f19c88"
electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.15:
version "1.3.15"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.15.tgz#08397934891cbcfaebbd18b82a95b5a481138369"
electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.16:
version "1.3.16"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.16.tgz#d0e026735754770901ae301a21664cba45d92f7d"
elliptic@^6.0.0:
version "6.4.0"
@ -2241,14 +2239,14 @@ encoding@^0.1.11:
dependencies:
iconv-lite "~0.4.13"
enhanced-resolve@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz#950964ecc7f0332a42321b673b38dc8ff15535b3"
enhanced-resolve@^3.4.0:
version "3.4.1"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
dependencies:
graceful-fs "^4.1.2"
memory-fs "^0.4.0"
object-assign "^4.0.1"
tapable "^0.2.5"
tapable "^0.2.7"
entities@^1.1.1, entities@~1.1.1:
version "1.1.1"
@ -2382,9 +2380,9 @@ eslint-module-utils@^2.1.1:
debug "^2.6.8"
pkg-dir "^1.0.0"
eslint-plugin-html@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-3.1.0.tgz#2eb999b48840b7184edf1c953976a73307151e44"
eslint-plugin-html@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-3.1.1.tgz#d6c03796e89ac6b735da6fef9ca9162b423daee3"
dependencies:
htmlparser2 "^3.8.2"
@ -2403,9 +2401,9 @@ eslint-plugin-import@^2.6.1:
minimatch "^3.0.3"
read-pkg-up "^2.0.0"
eslint-plugin-node@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-5.1.0.tgz#bc8cdb85180d0b4d946a2531640e2a4dd7a4e6d4"
eslint-plugin-node@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-5.1.1.tgz#a7ed956e780c22aef6afd1116005acd82f26eac6"
dependencies:
ignore "^3.3.3"
minimatch "^3.0.4"
@ -2427,14 +2425,15 @@ eslint-scope@^3.7.1:
esrecurse "^4.1.0"
estraverse "^4.1.1"
eslint@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.2.0.tgz#a2b3184111b198e02e9c7f3cca625a5e01c56b3d"
eslint@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.3.0.tgz#fcd7c96376bbf34c85ee67ed0012a299642b108f"
dependencies:
ajv "^5.2.0"
babel-code-frame "^6.22.0"
chalk "^1.1.3"
concat-stream "^1.6.0"
cross-spawn "^5.1.0"
debug "^2.6.8"
doctrine "^2.0.0"
eslint-scope "^3.7.1"
@ -2443,6 +2442,7 @@ eslint@^4.2.0:
estraverse "^4.2.0"
esutils "^2.0.2"
file-entry-cache "^2.0.0"
functional-red-black-tree "^1.0.1"
glob "^7.1.2"
globals "^9.17.0"
ignore "^3.3.3"
@ -2461,6 +2461,7 @@ eslint@^4.2.0:
pluralize "^4.0.0"
progress "^2.0.0"
require-uncached "^1.0.3"
semver "^5.3.0"
strip-json-comments "~2.0.1"
table "^4.0.1"
text-table "~0.2.0"
@ -2549,18 +2550,6 @@ evp_bytestokey@^1.0.0:
dependencies:
create-hash "^1.1.1"
execa@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.5.1.tgz#de3fb85cb8d6e91c85bcbceb164581785cb57b36"
dependencies:
cross-spawn "^4.0.0"
get-stream "^2.2.0"
is-stream "^1.1.0"
npm-run-path "^2.0.0"
p-finally "^1.0.0"
signal-exit "^3.0.0"
strip-eof "^1.0.0"
execa@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
@ -2585,7 +2574,7 @@ expand-range@^1.8.1:
dependencies:
fill-range "^2.1.0"
express@^4.15.2:
express@^4.15.2, express@^4.15.3:
version "4.15.3"
resolved "https://registry.yarnpkg.com/express/-/express-4.15.3.tgz#bab65d0f03aa80c358408972fc700f916944b662"
dependencies:
@ -2622,7 +2611,7 @@ extend@~3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
external-editor@^2.0.1:
external-editor@^2.0.1, external-editor@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972"
dependencies:
@ -2863,6 +2852,10 @@ function-name-support@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/function-name-support/-/function-name-support-0.2.0.tgz#55d3bfaa6eafd505a50f9bc81fdf57564a0bb071"
functional-red-black-tree@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
gauge@~2.7.3:
version "2.7.4"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
@ -2898,13 +2891,6 @@ get-stdin@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
get-stream@^2.2.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
dependencies:
object-assign "^4.0.1"
pinkie-promise "^2.0.0"
get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
@ -2994,10 +2980,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
"graceful-readlink@>= 1.0.0":
version "1.0.1"
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
gzip-size@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520"
@ -3134,12 +3116,12 @@ html-entities@^1.2.0:
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
html-minifier@^3.2.3, html-minifier@^3.5.2:
version "3.5.2"
resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.2.tgz#d73bc3ff448942408818ce609bf3fb0ea7ef4eb7"
version "3.5.3"
resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.3.tgz#4a275e3b1a16639abb79b4c11191ff0d0fcf1ab9"
dependencies:
camel-case "3.0.x"
clean-css "4.1.x"
commander "2.9.x"
commander "2.11.x"
he "1.1.x"
ncname "1.0.x"
param-case "2.1.x"
@ -3269,8 +3251,8 @@ indent-string@^2.1.0:
repeating "^2.0.0"
indent-string@^3.0.0, indent-string@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d"
version "3.2.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
indexes-of@^1.0.1:
version "1.0.1"
@ -3299,7 +3281,7 @@ ini@^1.3.4, ini@~1.3.0:
version "1.3.4"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
inquirer@3.0.6, inquirer@^3.0.6:
inquirer@3.0.6:
version "3.0.6"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347"
dependencies:
@ -3317,6 +3299,25 @@ inquirer@3.0.6, inquirer@^3.0.6:
strip-ansi "^3.0.0"
through "^2.3.6"
inquirer@^3.0.6:
version "3.2.1"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.1.tgz#06ceb0f540f45ca548c17d6840959878265fa175"
dependencies:
ansi-escapes "^2.0.0"
chalk "^2.0.0"
cli-cursor "^2.1.0"
cli-width "^2.0.0"
external-editor "^2.0.4"
figures "^2.0.0"
lodash "^4.3.0"
mute-stream "0.0.7"
run-async "^2.2.0"
rx-lite "^4.0.8"
rx-lite-aggregates "^4.0.8"
string-width "^2.1.0"
strip-ansi "^4.0.0"
through "^2.3.6"
interpret@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
@ -3331,9 +3332,9 @@ invert-kv@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
ipaddr.js@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.3.0.tgz#1e03a52fdad83a8bbb2b25cbf4998b4cffcd3dec"
ipaddr.js@1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0"
irregular-plurals@^1.0.0:
version "1.3.0"
@ -3692,9 +3693,9 @@ jsesc@~0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
json-loader@^0.5.4:
version "0.5.4"
resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de"
json-loader@^0.5.4, json-loader@^0.5.6:
version "0.5.7"
resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
json-schema-traverse@^0.3.0:
version "0.3.1"
@ -3817,7 +3818,7 @@ loader-runner@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2"
loader-utils@0.2.x, loader-utils@^0.2.15, loader-utils@^0.2.16:
loader-utils@^0.2.15, loader-utils@^0.2.16:
version "0.2.17"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
dependencies:
@ -4079,19 +4080,15 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
"mime-db@>= 1.27.0 < 2":
"mime-db@>= 1.27.0 < 2", mime-db@~1.29.0:
version "1.29.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878"
mime-db@~1.27.0:
version "1.27.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1"
mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7:
version "2.1.15"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed"
version "2.1.16"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23"
dependencies:
mime-db "~1.27.0"
mime-db "~1.29.0"
mime@1.3.4:
version "1.3.4"
@ -4119,7 +4116,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
dependencies:
brace-expansion "^1.1.7"
minimist@0.0.8, minimist@~0.0.1:
minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
@ -4127,6 +4124,10 @@ minimist@1.2.0, minimist@^1.1.3, minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
minimist@~0.0.1:
version "0.0.10"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
@ -4369,16 +4370,6 @@ observable-to-promise@^0.5.0:
is-observable "^0.2.0"
symbol-observable "^1.0.4"
offline-plugin@^4.8.3:
version "4.8.3"
resolved "https://registry.yarnpkg.com/offline-plugin/-/offline-plugin-4.8.3.tgz#9e95bd342ea2ac836b001b81f204c40638694d6c"
dependencies:
deep-extend "^0.4.0"
ejs "^2.3.4"
loader-utils "0.2.x"
minimatch "^3.0.3"
slash "^1.0.0"
on-finished@~2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
@ -4453,17 +4444,11 @@ os-homedir@^1.0.0, os-homedir@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
os-locale@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
dependencies:
lcid "^1.0.0"
os-locale@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.0.0.tgz#15918ded510522b81ee7ae5a309d54f639fc39a4"
version "2.1.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
dependencies:
execa "^0.5.0"
execa "^0.7.0"
lcid "^1.0.0"
mem "^1.1.0"
@ -4958,19 +4943,13 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0
supports-color "^3.2.3"
postcss@^6.0.1, postcss@^6.0.6:
version "6.0.7"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.7.tgz#6a097477c46d13d0560a817d69abc0bae549d0a0"
version "6.0.8"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.8.tgz#89067a9ce8b11f8a84cbc5117efc30419a0857b3"
dependencies:
chalk "^2.0.1"
source-map "^0.5.6"
supports-color "^4.2.0"
preload-webpack-plugin@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/preload-webpack-plugin/-/preload-webpack-plugin-1.2.2.tgz#d1b6f0eab3c2d0bb4c249d409cf6b7a8b0a415dd"
dependencies:
object-assign "^4.1.1"
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@ -5037,11 +5016,11 @@ proto-list@~1.2.1:
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
proxy-addr@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.4.tgz#27e545f6960a44a627d9b44467e35c1b6b4ce2f3"
version "1.1.5"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918"
dependencies:
forwarded "~0.1.0"
ipaddr.js "1.3.0"
ipaddr.js "1.4.0"
prr@~0.0.0:
version "0.0.0"
@ -5419,8 +5398,8 @@ resolve@1.1.7:
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
resolve@^1.1.6, resolve@^1.1.7, resolve@^1.2.0, resolve@^1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5"
version "1.4.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
dependencies:
path-parse "^1.0.5"
@ -5526,6 +5505,16 @@ run-async@^2.2.0:
dependencies:
is-promise "^2.1.0"
rx-lite-aggregates@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
dependencies:
rx-lite "*"
rx-lite@*, rx-lite@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
rx@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
@ -5548,19 +5537,17 @@ schema-utils@^0.3.0:
dependencies:
ajv "^5.0.0"
script-ext-html-webpack-plugin@^1.8.3:
version "1.8.5"
resolved "https://registry.yarnpkg.com/script-ext-html-webpack-plugin/-/script-ext-html-webpack-plugin-1.8.5.tgz#7a408383d7f3329da8f59d503be25cc39a53f3f3"
dependencies:
debug "^2.6.8"
semver-diff@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
dependencies:
semver "^5.0.3"
"semver@2 || 3 || 4 || 5", semver@5.3.0, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0:
"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0:
version "5.4.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
semver@5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
@ -5647,6 +5634,12 @@ slice-ansi@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
slice-ansi@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
dependencies:
is-fullwidth-code-point "^2.0.0"
slide@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
@ -5799,9 +5792,9 @@ string-width@^1.0.1, string-width@^1.0.2:
is-fullwidth-code-point "^1.0.0"
strip-ansi "^3.0.0"
string-width@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.0.tgz#030664561fc146c9423ec7d978fe2457437fe6d0"
string-width@^2.0.0, string-width@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
dependencies:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
@ -5870,15 +5863,15 @@ supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
supports-color@^3.1.0, supports-color@^3.1.2, supports-color@^3.2.3:
supports-color@^3.1.2, supports-color@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
dependencies:
has-flag "^1.0.0"
supports-color@^4.0.0, supports-color@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.0.tgz#ad986dc7eb2315d009b4d77c8169c2231a684037"
supports-color@^4.0.0, supports-color@^4.2.0, supports-color@^4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836"
dependencies:
has-flag "^2.0.0"
@ -5917,9 +5910,9 @@ table@^4.0.1:
slice-ansi "0.0.4"
string-width "^2.0.0"
tapable@^0.2.5, tapable@^0.2.6, tapable@~0.2.5:
version "0.2.6"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d"
tapable@^0.2.6, tapable@^0.2.7:
version "0.2.7"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.7.tgz#e46c0daacbb2b8a98b9b0cea0f4052105817ed5c"
tappable@^1.1.0:
version "1.1.0"
@ -6083,10 +6076,10 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
uglify-js@3.0.x, uglify-js@^3.0.23:
version "3.0.25"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.25.tgz#3dc190b0ee437497e449bc6f785665b06afbe052"
version "3.0.26"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.26.tgz#ba279ca597b13fe6c62c2d87dd5188e57a7a3233"
dependencies:
commander "~2.9.0"
commander "~2.11.0"
source-map "~0.5.1"
uglify-js@^2.6, uglify-js@^2.8.29:
@ -6151,8 +6144,8 @@ unique-temp-dir@^1.0.0:
uid2 "0.0.3"
universalify@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.0.tgz#9eb1c4651debcc670cc94f1a75762332bb967778"
version "0.1.1"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7"
unpipe@~1.0.0:
version "1.0.0"
@ -6294,9 +6287,9 @@ vue-router@^2.7.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-2.7.0.tgz#16d424493aa51c3c8cce8b7c7210ea4c3a89aff1"
vue-server-renderer@~2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.4.1.tgz#9a1986c459387eaa319c16ca5c0d0f2ebb2c66c5"
vue-server-renderer@~2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.4.2.tgz#0ba0f984181ea1c455362b09bddf60bc0e0a03fa"
dependencies:
chalk "^1.1.3"
hash-sum "^1.0.2"
@ -6307,12 +6300,6 @@ vue-server-renderer@~2.4.1:
serialize-javascript "^1.3.0"
source-map "0.5.6"
vue-ssr-html-stream@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/vue-ssr-html-stream/-/vue-ssr-html-stream-2.2.0.tgz#56d78b96c9c172b43749a324c156e888aca96d92"
dependencies:
serialize-javascript "^1.3.0"
vue-style-loader@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-3.0.1.tgz#c8b639bb2f24baf9d78274dc17e4f264c1deda08"
@ -6320,9 +6307,9 @@ vue-style-loader@^3.0.0:
hash-sum "^1.0.2"
loader-utils "^1.0.2"
vue-template-compiler@~2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.4.1.tgz#20115cf8714f222f9be4111ec75b079a1c9b8197"
vue-template-compiler@~2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.4.2.tgz#5a45d843f148b098f6c1d1e35ac20c4956d30ad1"
dependencies:
de-indent "^1.0.2"
he "^1.1.0"
@ -6331,9 +6318,9 @@ vue-template-es2015-compiler@^1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.5.3.tgz#22787de4e37ebd9339b74223bc467d1adee30545"
vue@~2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/vue/-/vue-2.4.1.tgz#76e0b8eee614613532216b7bfe784e0b5695b160"
vue@~2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/vue/-/vue-2.4.2.tgz#a9855261f191c978cc0dc1150531b8d08149b58c"
vuex@^2.3.1:
version "2.3.1"
@ -6397,15 +6384,15 @@ webpack-sources@^1.0.1:
source-map "~0.5.3"
webpack@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.3.0.tgz#ce2f9e076566aba91f74887133a883fd7da187bc"
version "3.4.1"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.4.1.tgz#4c3f4f3fb318155a4db0cb6a36ff05c5697418f4"
dependencies:
acorn "^5.0.0"
acorn-dynamic-import "^2.0.0"
ajv "^5.1.5"
ajv-keywords "^2.0.0"
async "^2.1.2"
enhanced-resolve "^3.3.0"
enhanced-resolve "^3.4.0"
escope "^3.6.0"
interpret "^1.0.0"
json-loader "^0.5.4"
@ -6416,12 +6403,12 @@ webpack@^3.3.0:
mkdirp "~0.5.0"
node-libs-browser "^2.0.0"
source-map "^0.5.3"
supports-color "^3.1.0"
tapable "~0.2.5"
supports-color "^4.2.1"
tapable "^0.2.7"
uglifyjs-webpack-plugin "^0.4.6"
watchpack "^1.4.0"
webpack-sources "^1.0.1"
yargs "^6.0.0"
yargs "^8.0.2"
well-known-symbols@^1.0.0:
version "1.0.0"
@ -6445,10 +6432,6 @@ whet.extend@~0.9.9:
version "0.9.9"
resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"
which-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
@ -6569,12 +6552,6 @@ yallist@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
yargs-parser@^4.2.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"
dependencies:
camelcase "^3.0.0"
yargs-parser@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
@ -6587,25 +6564,7 @@ yargs-parser@^7.0.0:
dependencies:
camelcase "^4.1.0"
yargs@^6.0.0:
version "6.6.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"
dependencies:
camelcase "^3.0.0"
cliui "^3.2.0"
decamelize "^1.1.1"
get-caller-file "^1.0.1"
os-locale "^1.4.0"
read-pkg-up "^1.0.1"
require-directory "^2.1.1"
require-main-filename "^1.0.1"
set-blocking "^2.0.0"
string-width "^1.0.2"
which-module "^1.0.0"
y18n "^3.2.1"
yargs-parser "^4.2.0"
yargs@^8.0.1:
yargs@^8.0.1, yargs@^8.0.2:
version "8.0.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
dependencies: