Compatible with IE9+

This commit is contained in:
Sebastien Chopin 2017-07-04 18:30:01 +02:00
parent 71faf7cae3
commit 70a75f4e42
6 changed files with 309 additions and 297 deletions

View File

@ -1,5 +1,6 @@
'use strict' 'use strict'
import 'core-js/fn/promise'
import Vue from 'vue' import Vue from 'vue'
import Meta from 'vue-meta' import Meta from 'vue-meta'
import { createRouter } from './router.js' import { createRouter } from './router.js'
@ -77,7 +78,7 @@ async function createApp (ssrContext) {
router, router,
<%= (store ? 'store,' : '') %> <%= (store ? 'store,' : '') %>
_nuxt: { _nuxt: {
defaultTransition: defaultTransition, defaultTransition,
transitions: [ defaultTransition ], transitions: [ defaultTransition ],
setTransitions (transitions) { setTransitions (transitions) {
if (!Array.isArray(transitions)) { if (!Array.isArray(transitions)) {

View File

@ -62,6 +62,7 @@ export function createRouter () {
scrollBehavior, scrollBehavior,
routes: [ routes: [
<%= _routes %> <%= _routes %>
] ],
fallback: <%= router.fallback %>
}) })
} }

View File

@ -27,28 +27,26 @@ export default function webpackClientConfig () {
config.entry.app = resolve(this.options.buildDir, 'client.js') config.entry.app = resolve(this.options.buildDir, 'client.js')
// Add vendors // Add vendors
if (!this.options.dev) { if (this.options.store) {
if (this.options.store) { config.entry.vendor.push('vuex')
config.entry.vendor.push('vuex')
}
config.entry.vendor = config.entry.vendor.concat(this.options.build.vendor)
// Extract vendor chunks for better caching
config.plugins.push(
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
filename: this.options.build.filenames.vendor,
minChunks (module) {
// A module is extracted into the vendor chunk when...
return (
// If it's inside node_modules
/node_modules/.test(module.context) &&
// Do not externalize if the request is a CSS file
!/\.(css|less|scss|sass|styl|stylus)$/.test(module.request)
)
}
})
)
} }
config.entry.vendor = config.entry.vendor.concat(this.options.build.vendor)
// Extract vendor chunks for better caching
config.plugins.push(
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
filename: this.options.build.filenames.vendor,
minChunks (module) {
// A module is extracted into the vendor chunk when...
return (
// If it's inside node_modules
/node_modules/.test(module.context) &&
// Do not externalize if the request is a CSS file
!/\.(css|less|scss|sass|styl|stylus)$/.test(module.request)
)
}
})
)
// Env object defined in nuxt.config.js // Env object defined in nuxt.config.js
let env = {} let env = {}

View File

@ -127,7 +127,8 @@ export const defaultOptions = {
linkActiveClass: 'nuxt-link-active', linkActiveClass: 'nuxt-link-active',
linkExactActiveClass: 'nuxt-link-exact-active', linkExactActiveClass: 'nuxt-link-exact-active',
extendRoutes: null, extendRoutes: null,
scrollBehavior: null scrollBehavior: null,
fallback: false
}, },
render: { render: {
ssr: {}, ssr: {},

View File

@ -69,14 +69,15 @@
"ansi-html": "^0.0.7", "ansi-html": "^0.0.7",
"autoprefixer": "^7.1.1", "autoprefixer": "^7.1.1",
"babel-core": "^6.25.0", "babel-core": "^6.25.0",
"babel-loader": "^7.1.0", "babel-loader": "^7.1.1",
"babel-preset-es2015": "^6.24.1", "babel-preset-es2015": "^6.24.1",
"babel-preset-vue-app": "^1.2.0", "babel-preset-vue-app": "^1.2.0",
"chalk": "^1.1.3", "chalk": "^2.0.1",
"chokidar": "^1.7.0", "chokidar": "^1.7.0",
"clone": "^2.1.1", "clone": "^2.1.1",
"compression": "^1.6.2", "compression": "^1.6.2",
"connect": "^3.6.2", "connect": "^3.6.2",
"core-js": "^2.4.1",
"css-loader": "^0.28.4", "css-loader": "^0.28.4",
"debug": "^2.6.8", "debug": "^2.6.8",
"etag": "^1.8.0", "etag": "^1.8.0",
@ -88,7 +89,7 @@
"glob": "^7.1.2", "glob": "^7.1.2",
"hash-sum": "^1.0.2", "hash-sum": "^1.0.2",
"html-minifier": "^3.5.2", "html-minifier": "^3.5.2",
"html-webpack-plugin": "^2.28.0", "html-webpack-plugin": "^2.29.0",
"lodash": "^4.17.4", "lodash": "^4.17.4",
"memory-fs": "^0.4.1", "memory-fs": "^0.4.1",
"minimist": "^1.2.0", "minimist": "^1.2.0",
@ -97,7 +98,7 @@
"pify": "^3.0.0", "pify": "^3.0.0",
"preload-webpack-plugin": "^1.2.2", "preload-webpack-plugin": "^1.2.2",
"progress-bar-webpack-plugin": "^1.9.3", "progress-bar-webpack-plugin": "^1.9.3",
"script-ext-html-webpack-plugin": "^1.8.1", "script-ext-html-webpack-plugin": "^1.8.3",
"serialize-javascript": "^1.3.0", "serialize-javascript": "^1.3.0",
"serve-static": "^1.12.3", "serve-static": "^1.12.3",
"source-map-support": "^0.4.15", "source-map-support": "^0.4.15",
@ -105,21 +106,21 @@
"tappable": "^1.0.1", "tappable": "^1.0.1",
"url-loader": "^0.5.9", "url-loader": "^0.5.9",
"vue": "~2.3.4", "vue": "~2.3.4",
"vue-loader": "^12.2.1", "vue-loader": "^13.0.0",
"vue-meta": "^1.0.4", "vue-meta": "^1.0.4",
"vue-router": "^2.6.0", "vue-router": "^2.7.0",
"vue-server-renderer": "~2.3.4", "vue-server-renderer": "~2.3.4",
"vue-ssr-html-stream": "^2.2.0", "vue-ssr-html-stream": "^2.2.0",
"vue-template-compiler": "~2.3.4", "vue-template-compiler": "~2.3.4",
"vuex": "^2.3.1", "vuex": "^2.3.1",
"webpack": "^3.0.0", "webpack": "^3.0.0",
"webpack-bundle-analyzer": "^2.8.2", "webpack-bundle-analyzer": "^2.8.2",
"webpack-dev-middleware": "^1.10.2", "webpack-dev-middleware": "^1.11.0",
"webpack-hot-middleware": "^2.18.0", "webpack-hot-middleware": "^2.18.1",
"webpack-node-externals": "^1.6.0" "webpack-node-externals": "^1.6.0"
}, },
"devDependencies": { "devDependencies": {
"ava": "^0.19.1", "ava": "^0.20.0",
"babel-eslint": "^7.2.3", "babel-eslint": "^7.2.3",
"babel-plugin-array-includes": "^2.0.3", "babel-plugin-array-includes": "^2.0.3",
"babel-plugin-istanbul": "^4.1.4", "babel-plugin-istanbul": "^4.1.4",
@ -130,18 +131,18 @@
"codecov": "^2.2.0", "codecov": "^2.2.0",
"copy-webpack-plugin": "^4.0.1", "copy-webpack-plugin": "^4.0.1",
"cross-env": "^5.0.1", "cross-env": "^5.0.1",
"eslint": "^4.0.0", "eslint": "^4.1.1",
"eslint-config-standard": "^10.2.1", "eslint-config-standard": "^10.2.1",
"eslint-plugin-html": "^3.0.0", "eslint-plugin-html": "^3.0.0",
"eslint-plugin-import": "^2.3.0", "eslint-plugin-import": "^2.6.1",
"eslint-plugin-node": "^5.0.0", "eslint-plugin-node": "^5.1.0",
"eslint-plugin-promise": "^3.5.0", "eslint-plugin-promise": "^3.5.0",
"eslint-plugin-standard": "^3.0.1", "eslint-plugin-standard": "^3.0.1",
"finalhandler": "^1.0.3", "finalhandler": "^1.0.3",
"jsdom": "^11.0.0", "jsdom": "^11.1.0",
"json-loader": "^0.5.4", "json-loader": "^0.5.4",
"lerna": "2.0.0-rc.5", "lerna": "2.0.0-rc.5",
"nyc": "^11.0.2", "nyc": "^11.0.3",
"request": "^2.81.0", "request": "^2.81.0",
"request-promise-native": "^1.0.4", "request-promise-native": "^1.0.4",
"rimraf": "^2.6.1", "rimraf": "^2.6.1",
@ -154,7 +155,7 @@
"rollup-watch": "^4.0.0", "rollup-watch": "^4.0.0",
"server-destroy": "^1.0.1", "server-destroy": "^1.0.1",
"std-mocks": "^1.0.1", "std-mocks": "^1.0.1",
"uglify-js": "^3.0.18" "uglify-js": "^3.0.23"
}, },
"collective": { "collective": {
"type": "opencollective", "type": "opencollective",

526
yarn.lock

File diff suppressed because it is too large Load Diff