UNPKG

80.3 kBJavaScriptView Raw
1module.exports =
2/******/ (function(modules) { // webpackBootstrap
3/******/ // The module cache
4/******/ var installedModules = {};
5/******/
6/******/ // The require function
7/******/ function __webpack_require__(moduleId) {
8/******/
9/******/ // Check if module is in cache
10/******/ if(installedModules[moduleId])
11/******/ return installedModules[moduleId].exports;
12/******/
13/******/ // Create a new module (and put it into the cache)
14/******/ var module = installedModules[moduleId] = {
15/******/ i: moduleId,
16/******/ l: false,
17/******/ exports: {}
18/******/ };
19/******/
20/******/ // Execute the module function
21/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
22/******/
23/******/ // Flag the module as loaded
24/******/ module.l = true;
25/******/
26/******/ // Return the exports of the module
27/******/ return module.exports;
28/******/ }
29/******/
30/******/
31/******/ // expose the modules object (__webpack_modules__)
32/******/ __webpack_require__.m = modules;
33/******/
34/******/ // expose the module cache
35/******/ __webpack_require__.c = installedModules;
36/******/
37/******/ // identity function for calling harmony imports with the correct context
38/******/ __webpack_require__.i = function(value) { return value; };
39/******/
40/******/ // define getter function for harmony exports
41/******/ __webpack_require__.d = function(exports, name, getter) {
42/******/ if(!__webpack_require__.o(exports, name)) {
43/******/ Object.defineProperty(exports, name, {
44/******/ configurable: false,
45/******/ enumerable: true,
46/******/ get: getter
47/******/ });
48/******/ }
49/******/ };
50/******/
51/******/ // getDefaultExport function for compatibility with non-harmony modules
52/******/ __webpack_require__.n = function(module) {
53/******/ var getter = module && module.__esModule ?
54/******/ function getDefault() { return module['default']; } :
55/******/ function getModuleExports() { return module; };
56/******/ __webpack_require__.d(getter, 'a', getter);
57/******/ return getter;
58/******/ };
59/******/
60/******/ // Object.prototype.hasOwnProperty.call
61/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
62/******/
63/******/ // __webpack_public_path__
64/******/ __webpack_require__.p = "";
65/******/
66/******/ // Load entry module and return exports
67/******/ return __webpack_require__(__webpack_require__.s = 44);
68/******/ })
69/************************************************************************/
70/******/ ([
71/* 0 */
72/***/ (function(module, exports) {
73
74module.exports = require("lodash");
75
76/***/ }),
77/* 1 */
78/***/ (function(module, exports) {
79
80module.exports = require("path");
81
82/***/ }),
83/* 2 */
84/***/ (function(module, exports) {
85
86module.exports = require("babel-runtime/core-js/promise");
87
88/***/ }),
89/* 3 */
90/***/ (function(module, exports) {
91
92module.exports = require("babel-runtime/regenerator");
93
94/***/ }),
95/* 4 */
96/***/ (function(module, __webpack_exports__, __webpack_require__) {
97
98"use strict";
99Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
100/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__ = __webpack_require__(3);
101/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__);
102/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise__ = __webpack_require__(2);
103/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise__);
104/* harmony export (immutable) */ __webpack_exports__["encodeHtml"] = encodeHtml;
105/* harmony export (immutable) */ __webpack_exports__["getContext"] = getContext;
106/* harmony export (immutable) */ __webpack_exports__["setAnsiColors"] = setAnsiColors;
107/* harmony export (immutable) */ __webpack_exports__["waitFor"] = waitFor;
108/* harmony export (immutable) */ __webpack_exports__["urlJoin"] = urlJoin;
109/* harmony export (immutable) */ __webpack_exports__["promisifyRouteParams"] = promisifyRouteParams;
110
111
112
113
114
115var _marked = [waitFor].map(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark);
116
117function encodeHtml(str) {
118 return str.replace(/</g, '&lt;').replace(/>/g, '&gt;');
119}
120
121function getContext(req, res) {
122 return { req: req, res: res };
123}
124
125function setAnsiColors(ansiHTML) {
126 ansiHTML.setColors({
127 reset: ['efefef', 'a6004c'],
128 darkgrey: '5a012b',
129 yellow: 'ffab07',
130 green: 'aeefba',
131 magenta: 'ff84bf',
132 blue: '3505a0',
133 cyan: '56eaec',
134 red: '4e053a'
135 });
136}
137
138function waitFor(ms) {
139 return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function waitFor$(_context) {
140 while (1) {
141 switch (_context.prev = _context.next) {
142 case 0:
143 return _context.abrupt('return', new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve) {
144 setTimeout(resolve, ms || 0);
145 }));
146
147 case 1:
148 case 'end':
149 return _context.stop();
150 }
151 }
152 }, _marked[0], this);
153}
154
155function urlJoin() {
156 return [].slice.call(arguments).join('/').replace(/\/+/g, '/');
157}
158
159function promisifyRouteParams(fn) {
160 // If routeParams[route] is an array
161 if (Array.isArray(fn)) {
162 return __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a.resolve(fn);
163 }
164 // If routeParams[route] is a function expecting a callback
165 if (fn.length === 1) {
166 return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {
167 fn(function (err, routeParams) {
168 if (err) {
169 reject(err);
170 }
171 resolve(routeParams);
172 });
173 });
174 }
175 var promise = fn();
176 if (!(promise instanceof __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a)) {
177 promise = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a.resolve(promise);
178 }
179 return promise;
180}
181
182/***/ }),
183/* 5 */
184/***/ (function(module, exports) {
185
186module.exports = require("co");
187
188/***/ }),
189/* 6 */
190/***/ (function(module, exports) {
191
192module.exports = require("fs-extra");
193
194/***/ }),
195/* 7 */
196/***/ (function(module, exports) {
197
198module.exports = require("pify");
199
200/***/ }),
201/* 8 */
202/***/ (function(module, exports) {
203
204module.exports = require("babel-runtime/core-js/json/stringify");
205
206/***/ }),
207/* 9 */
208/***/ (function(module, exports) {
209
210module.exports = require("debug");
211
212/***/ }),
213/* 10 */
214/***/ (function(module, exports) {
215
216module.exports = require("webpack");
217
218/***/ }),
219/* 11 */
220/***/ (function(module, exports) {
221
222module.exports = require("babel-runtime/helpers/classCallCheck");
223
224/***/ }),
225/* 12 */
226/***/ (function(module, exports) {
227
228module.exports = require("babel-runtime/helpers/createClass");
229
230/***/ }),
231/* 13 */
232/***/ (function(module, exports) {
233
234module.exports = require("serialize-javascript");
235
236/***/ }),
237/* 14 */
238/***/ (function(module, __webpack_exports__, __webpack_require__) {
239
240"use strict";
241/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__vue_loader_config__ = __webpack_require__(27);
242/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash__ = __webpack_require__(0);
243/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash__);
244/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_path__ = __webpack_require__(1);
245/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_path___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_path__);
246/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils__ = __webpack_require__(4);
247
248
249
250
251
252
253
254/*
255|--------------------------------------------------------------------------
256| Webpack Shared Config
257|
258| This is the config which is extended by the server and client
259| webpack config files
260|--------------------------------------------------------------------------
261*/
262/* harmony default export */ __webpack_exports__["a"] = function (_ref) {
263 var isClient = _ref.isClient,
264 isServer = _ref.isServer;
265
266 var nodeModulesDir = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_path__["join"])(__dirname, '..', 'node_modules');
267 var config = {
268 devtool: 'source-map',
269 entry: {
270 vendor: ['vue', 'vue-router', 'vue-meta']
271 },
272 output: {
273 publicPath: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils__["urlJoin"])(this.options.router.base, '/_nuxt/')
274 },
275 performance: {
276 hints: this.dev ? false : 'warning'
277 },
278 resolve: {
279 extensions: ['.js', '.json', '.vue'],
280 // Disable for now
281 alias: {
282 '~': __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_path__["join"])(this.srcDir),
283 'static': __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_path__["join"])(this.srcDir, 'static'), // use in template with <img src="~static/nuxt.png" />
284 '~static': __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_path__["join"])(this.srcDir, 'static'),
285 'assets': __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_path__["join"])(this.srcDir, 'assets'), // use in template with <img src="~static/nuxt.png" />
286 '~assets': __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_path__["join"])(this.srcDir, 'assets'),
287 '~plugins': __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_path__["join"])(this.srcDir, 'plugins'),
288 '~store': __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_path__["join"])(this.srcDir, 'store'),
289 '~router': __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_path__["join"])(this.dir, '.nuxt/router'),
290 '~pages': __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_path__["join"])(this.srcDir, 'pages'),
291 '~components': __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_path__["join"])(this.srcDir, 'components')
292 },
293 modules: [nodeModulesDir, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_path__["join"])(this.dir, 'node_modules')]
294 },
295 resolveLoader: {
296 modules: [nodeModulesDir, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_path__["join"])(this.dir, 'node_modules')]
297 },
298 module: {
299 rules: [{
300 test: /\.vue$/,
301 loader: 'vue-loader',
302 query: __WEBPACK_IMPORTED_MODULE_0__vue_loader_config__["a" /* default */].call(this, { isClient: isClient, isServer: isServer })
303 }, {
304 test: /\.js$/,
305 loader: 'babel-loader',
306 exclude: /node_modules/,
307 query: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_lodash__["defaults"])(this.options.build.babel, {
308 plugins: ['transform-async-to-generator', 'transform-runtime'],
309 presets: [['es2015', { modules: false }], 'stage-2'],
310 cacheDirectory: !!this.dev
311 })
312 }]
313 },
314 plugins: this.options.build.plugins
315 };
316 // Add nuxt build loaders (can be configured in nuxt.config.js)
317 config.module.rules = config.module.rules.concat(this.options.build.loaders);
318 // Return config
319 return config;
320};
321
322/***/ }),
323/* 15 */
324/***/ (function(module, exports) {
325
326module.exports = require("babel-runtime/core-js/object/assign");
327
328/***/ }),
329/* 16 */
330/***/ (function(module, exports) {
331
332module.exports = require("babel-runtime/core-js/object/keys");
333
334/***/ }),
335/* 17 */
336/***/ (function(module, exports) {
337
338module.exports = require("babel-runtime/helpers/typeof");
339
340/***/ }),
341/* 18 */
342/***/ (function(module, exports) {
343
344module.exports = require("extract-text-webpack-plugin");
345
346/***/ }),
347/* 19 */
348/***/ (function(module, __webpack_exports__, __webpack_require__) {
349
350"use strict";
351/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__ = __webpack_require__(17);
352/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__);
353/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise__ = __webpack_require__(2);
354/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise__);
355/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_regenerator__ = __webpack_require__(3);
356/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_regenerator__);
357/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_array_from__ = __webpack_require__(30);
358/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_array_from___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_array_from__);
359/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash__ = __webpack_require__(0);
360/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash__);
361/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_co__ = __webpack_require__(5);
362/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_co___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_co__);
363/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_chokidar__ = __webpack_require__(31);
364/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_chokidar___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_chokidar__);
365/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_fs_extra__ = __webpack_require__(6);
366/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_fs_extra___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_fs_extra__);
367/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_hash_sum__ = __webpack_require__(34);
368/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_hash_sum___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_hash_sum__);
369/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_pify__ = __webpack_require__(7);
370/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_pify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_pify__);
371/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_webpack__ = __webpack_require__(10);
372/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_webpack___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_webpack__);
373/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_serialize_javascript__ = __webpack_require__(13);
374/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_serialize_javascript___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_serialize_javascript__);
375/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_vue_server_renderer__ = __webpack_require__(41);
376/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_vue_server_renderer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_vue_server_renderer__);
377/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_path__ = __webpack_require__(1);
378/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_path___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_path__);
379/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__webpack_client_config_js__ = __webpack_require__(25);
380/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__webpack_server_config_js__ = __webpack_require__(26);
381/* harmony export (immutable) */ __webpack_exports__["a"] = options;
382/* harmony export (immutable) */ __webpack_exports__["b"] = build;
383
384
385
386
387
388
389
390var _marked = [build, buildFiles, generateRoutesAndFiles].map(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_regenerator___default.a.mark);
391
392var debug = __webpack_require__(9)('nuxt:build');
393
394
395
396
397
398
399
400
401
402
403
404
405var remove = __WEBPACK_IMPORTED_MODULE_9_pify___default()(__WEBPACK_IMPORTED_MODULE_7_fs_extra___default.a.remove);
406var readFile = __WEBPACK_IMPORTED_MODULE_9_pify___default()(__WEBPACK_IMPORTED_MODULE_7_fs_extra___default.a.readFile);
407var writeFile = __WEBPACK_IMPORTED_MODULE_9_pify___default()(__WEBPACK_IMPORTED_MODULE_7_fs_extra___default.a.writeFile);
408var mkdirp = __WEBPACK_IMPORTED_MODULE_9_pify___default()(__WEBPACK_IMPORTED_MODULE_7_fs_extra___default.a.mkdirp);
409var glob = __WEBPACK_IMPORTED_MODULE_9_pify___default()(__webpack_require__(33));
410var reqSep = /\//g;
411var sysSep = __WEBPACK_IMPORTED_MODULE_4_lodash___default.a.escapeRegExp(__WEBPACK_IMPORTED_MODULE_13_path__["sep"]);
412var normalize = function normalize(string) {
413 return string.replace(reqSep, sysSep);
414};
415var wp = function wp(p) {
416 /* istanbul ignore if */
417 if (/^win/.test(process.platform)) {
418 p = p.replace(/\\/g, '\\\\');
419 }
420 return p;
421};
422var r = function r() {
423 var args = __WEBPACK_IMPORTED_MODULE_3_babel_runtime_core_js_array_from___default()(arguments);
424 if (__WEBPACK_IMPORTED_MODULE_4_lodash___default.a.last(args).indexOf('~') !== -1) {
425 return wp(__WEBPACK_IMPORTED_MODULE_4_lodash___default.a.last(args));
426 }
427 args = args.map(normalize);
428 return wp(__WEBPACK_IMPORTED_MODULE_13_path__["resolve"].apply(null, args));
429};
430// force green color
431debug.color = 2;
432
433var defaults = {
434 filenames: {
435 css: 'style.css',
436 vendor: 'vendor.bundle.js',
437 app: 'nuxt.bundle.js'
438 },
439 vendor: [],
440 loaders: [],
441 plugins: [],
442 babel: {},
443 postcss: []
444};
445var defaultsLoaders = [{
446 test: /\.(png|jpe?g|gif|svg)$/,
447 loader: 'url-loader',
448 query: {
449 limit: 1000, // 1KO
450 name: 'img/[name].[hash:7].[ext]'
451 }
452}, {
453 test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
454 loader: 'url-loader',
455 query: {
456 limit: 1000, // 1 KO
457 name: 'fonts/[name].[hash:7].[ext]'
458 }
459}];
460var defaultsPostcss = [__webpack_require__(29)({
461 browsers: ['last 3 versions']
462})];
463
464function options() {
465 // Defaults build options
466 var extraDefaults = {};
467 if (this.options.build && !Array.isArray(this.options.build.loaders)) extraDefaults.loaders = defaultsLoaders;
468 if (this.options.build && !Array.isArray(this.options.build.postcss)) extraDefaults.postcss = defaultsPostcss;
469 this.options.build = __WEBPACK_IMPORTED_MODULE_4_lodash___default.a.defaultsDeep(this.options.build, defaults, extraDefaults);
470 // Production, create server-renderer
471 if (!this.dev) {
472 var serverConfig = getWebpackServerConfig.call(this);
473 var bundlePath = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13_path__["join"])(serverConfig.output.path, serverConfig.output.filename);
474 if (__WEBPACK_IMPORTED_MODULE_7_fs_extra___default.a.existsSync(bundlePath)) {
475 var bundle = __WEBPACK_IMPORTED_MODULE_7_fs_extra___default.a.readFileSync(bundlePath, 'utf8');
476 createRenderer.call(this, bundle);
477 }
478 }
479}
480
481function build() {
482 return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_regenerator___default.a.wrap(function build$(_context) {
483 while (1) {
484 switch (_context.prev = _context.next) {
485 case 0:
486 // Check if pages dir exists and warn if not
487 if (!__WEBPACK_IMPORTED_MODULE_7_fs_extra___default.a.existsSync(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13_path__["join"])(this.srcDir, 'pages'))) {
488 if (__WEBPACK_IMPORTED_MODULE_7_fs_extra___default.a.existsSync(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13_path__["join"])(this.srcDir, '..', 'pages'))) {
489 console.error('> No `pages` directory found. Did you mean to run `nuxt` in the parent (`../`) directory?'); // eslint-disable-line no-console
490 } else {
491 console.error('> Couldn\'t find a `pages` directory. Please create one under the project root'); // eslint-disable-line no-console
492 }
493 process.exit(1);
494 }
495 debug('App root: ' + this.srcDir);
496 debug('Generating .nuxt/ files...');
497 // Create .nuxt/, .nuxt/components and .nuxt/dist folders
498 _context.next = 5;
499 return remove(r(this.dir, '.nuxt'));
500
501 case 5:
502 _context.next = 7;
503 return mkdirp(r(this.dir, '.nuxt/components'));
504
505 case 7:
506 if (this.dev) {
507 _context.next = 10;
508 break;
509 }
510
511 _context.next = 10;
512 return mkdirp(r(this.dir, '.nuxt/dist'));
513
514 case 10:
515 _context.next = 12;
516 return generateRoutesAndFiles.call(this);
517
518 case 12:
519 _context.next = 14;
520 return buildFiles.call(this);
521
522 case 14:
523 return _context.abrupt('return', this);
524
525 case 15:
526 case 'end':
527 return _context.stop();
528 }
529 }
530 }, _marked[0], this);
531}
532
533function buildFiles() {
534 return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_regenerator___default.a.wrap(function buildFiles$(_context2) {
535 while (1) {
536 switch (_context2.prev = _context2.next) {
537 case 0:
538 if (!this.dev) {
539 _context2.next = 7;
540 break;
541 }
542
543 debug('Adding webpack middlewares...');
544 createWebpackMiddlewares.call(this);
545 webpackWatchAndUpdate.call(this);
546 watchPages.call(this);
547 _context2.next = 10;
548 break;
549
550 case 7:
551 debug('Building files...');
552 _context2.next = 10;
553 return [webpackRunClient.call(this), webpackRunServer.call(this)];
554
555 case 10:
556 case 'end':
557 return _context2.stop();
558 }
559 }
560 }, _marked[1], this);
561}
562
563function generateRoutesAndFiles() {
564 var _this = this;
565
566 var layouts, layoutsFiles, files, templatesFiles, templateVars, moveTemplates;
567 return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_regenerator___default.a.wrap(function generateRoutesAndFiles$(_context3) {
568 while (1) {
569 switch (_context3.prev = _context3.next) {
570 case 0:
571 debug('Generating routes...');
572 // Layouts
573 layouts = {};
574 _context3.next = 4;
575 return glob('layouts/*.vue', { cwd: this.srcDir });
576
577 case 4:
578 layoutsFiles = _context3.sent;
579
580 layoutsFiles.forEach(function (file) {
581 var name = file.split('/').slice(-1)[0].replace('.vue', '');
582 if (name === 'error') return;
583 layouts[name] = r(_this.srcDir, file);
584 });
585 // Generate routes based on files
586 _context3.next = 8;
587 return glob('pages/**/*.vue', { cwd: this.srcDir });
588
589 case 8:
590 files = _context3.sent;
591
592 this.routes = __WEBPACK_IMPORTED_MODULE_4_lodash___default.a.uniq(__WEBPACK_IMPORTED_MODULE_4_lodash___default.a.map(files, function (file) {
593 return file.replace(/^pages/, '').replace(/\.vue$/, '').replace(/\/index/g, '').replace(/_/g, ':').replace('', '/').replace(/\/{2,}/g, '/');
594 }));
595 // Interpret and move template files to .nuxt/
596 debug('Generating files...');
597 templatesFiles = ['App.vue', 'client.js', 'index.js', 'router.js', 'server.js', 'utils.js', 'components/nuxt-loading.vue', 'components/nuxt-child.js', 'components/nuxt-link.js', 'components/nuxt.vue'];
598 templateVars = {
599 uniqBy: __WEBPACK_IMPORTED_MODULE_4_lodash___default.a.uniqBy,
600 isDev: this.dev,
601 router: {
602 base: this.options.router.base,
603 linkActiveClass: this.options.router.linkActiveClass
604 },
605 env: this.options.env,
606 head: this.options.head,
607 store: this.options.store,
608 css: this.options.css,
609 plugins: this.options.plugins.map(function (p) {
610 return r(_this.srcDir, p);
611 }),
612 appPath: './App.vue',
613 layouts: layouts,
614 loading: typeof this.options.loading === 'string' ? r(this.srcDir, this.options.loading) : this.options.loading,
615 transition: this.options.transition,
616 components: {
617 Loading: r(__dirname, 'app', 'components', 'nuxt-loading.vue'),
618 ErrorPage: r(__dirname, 'app', 'components', 'nuxt-error.vue')
619 }
620 };
621 // Format routes for the lib/app/router.js template
622
623 templateVars.router.routes = createRoutes(files, this.srcDir);
624 if (layoutsFiles.indexOf('layouts/error.vue') !== -1) {
625 templateVars.components.ErrorPage = r(this.srcDir, 'layouts/error.vue');
626 }
627 // If no default layout, create its folder and add the default folder
628
629 if (layouts.default) {
630 _context3.next = 20;
631 break;
632 }
633
634 _context3.next = 18;
635 return mkdirp(r(this.dir, '.nuxt/layouts'));
636
637 case 18:
638 templatesFiles.push('layouts/default.vue');
639 layouts.default = r(__dirname, 'app', 'layouts', 'default.vue');
640
641 case 20:
642 // Add store if needed
643 if (this.options.store) {
644 templatesFiles.push('store.js');
645 }
646 moveTemplates = templatesFiles.map(function (file) {
647 return readFile(r(__dirname, 'app', file), 'utf8').then(function (fileContent) {
648 var template = __WEBPACK_IMPORTED_MODULE_4_lodash___default.a.template(fileContent, {
649 imports: { serialize: __WEBPACK_IMPORTED_MODULE_11_serialize_javascript___default.a }
650 });
651 var content = template(templateVars);
652 return writeFile(r(_this.dir, '.nuxt', file), content, 'utf8');
653 });
654 });
655 _context3.next = 24;
656 return moveTemplates;
657
658 case 24:
659 case 'end':
660 return _context3.stop();
661 }
662 }
663 }, _marked[2], this);
664}
665
666function createRoutes(files, srcDir) {
667 var routes = [];
668 files.forEach(function (file) {
669 var keys = file.replace(/^pages/, '').replace(/\.vue$/, '').replace(/\/{2,}/g, '/').split('/').slice(1);
670 var route = { name: '', path: '', component: r(srcDir, file), _name: null };
671 var parent = routes;
672 keys.forEach(function (key, i) {
673 route.name = route.name ? route.name + '-' + key.replace('_', '') : key.replace('_', '');
674 var child = __WEBPACK_IMPORTED_MODULE_4_lodash___default.a.find(parent, { name: route.name });
675 if (child) {
676 if (!child.children) {
677 child.children = [];
678 }
679 parent = child.children;
680 route.path = '';
681 } else {
682 if (key === 'index' && i + 1 === keys.length) {
683 route.path += i > 0 ? '' : '/';
684 } else {
685 route.path += '/' + key.replace('_', ':');
686 if (key.indexOf('_') !== -1) {
687 route.path += '?';
688 }
689 }
690 }
691 });
692 route._name = '_' + __WEBPACK_IMPORTED_MODULE_8_hash_sum___default()(route.component);
693 // Order Routes path
694 parent.push(route);
695 parent.sort(function (a, b) {
696 var isA = a.path[0] === ':' || a.path[1] === ':' ? 1 : 0;
697 var isB = b.path[0] === ':' || b.path[1] === ':' ? 1 : 0;
698 return isA - isB === 0 ? a.path.length - b.path.length : isA - isB;
699 });
700 });
701 return cleanChildrenRoutes(routes);
702}
703
704function cleanChildrenRoutes(routes) {
705 var isChild = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
706
707 var hasIndex = false;
708 var parents = [];
709 routes.forEach(function (route) {
710 route.path = isChild ? route.path.replace('/', '') : route.path;
711 if (isChild && /-index$/.test(route.name) || !isChild && route.name === 'index') {
712 hasIndex = true;
713 }
714 var names = route.path.split('/');
715 if (hasIndex && (isChild || !isChild && names[1] && names[1].indexOf('?') > -1)) {
716 route.path = route.path.replace('?', '');
717 }
718 if (/-index$/.test(route.name)) {
719 parents.push(route.name);
720 } else {
721 if (parents.indexOf(route.name.split('-').slice(0, -1).join('-') + '-index') > -1) {
722 route.path = route.path.replace('?', '');
723 }
724 }
725 route.name = route.name.replace(/-index$/, '');
726 if (route.children) {
727 if (route.children.find(function (child) {
728 return child.path === '';
729 })) {
730 delete route.name;
731 }
732 route.children = cleanChildrenRoutes(route.children, true);
733 }
734 });
735 return routes;
736}
737
738function getWebpackClientConfig() {
739 return __WEBPACK_IMPORTED_MODULE_14__webpack_client_config_js__["a" /* default */].call(this);
740}
741
742function getWebpackServerConfig() {
743 return __WEBPACK_IMPORTED_MODULE_15__webpack_server_config_js__["a" /* default */].call(this);
744}
745
746function createWebpackMiddlewares() {
747 var clientConfig = getWebpackClientConfig.call(this);
748 // setup on the fly compilation + hot-reload
749 clientConfig.entry.app = __WEBPACK_IMPORTED_MODULE_4_lodash___default.a.flatten(['webpack-hot-middleware/client?reload=true', clientConfig.entry.app]);
750 clientConfig.plugins.push(new __WEBPACK_IMPORTED_MODULE_10_webpack___default.a.HotModuleReplacementPlugin(), new __WEBPACK_IMPORTED_MODULE_10_webpack___default.a.NoEmitOnErrorsPlugin());
751 var clientCompiler = __WEBPACK_IMPORTED_MODULE_10_webpack___default()(clientConfig);
752 // Add the middlewares to the instance context
753 this.webpackDevMiddleware = __WEBPACK_IMPORTED_MODULE_9_pify___default()(__webpack_require__(42)(clientCompiler, {
754 publicPath: clientConfig.output.publicPath,
755 stats: {
756 colors: true,
757 chunks: false
758 },
759 quiet: false,
760 noInfo: true
761 }));
762 this.webpackHotMiddleware = __WEBPACK_IMPORTED_MODULE_9_pify___default()(__webpack_require__(43)(clientCompiler));
763}
764
765function webpackWatchAndUpdate() {
766 var _this2 = this;
767
768 var MFS = __webpack_require__(39); // <- dependencies of webpack
769 var mfs = new MFS();
770 var serverConfig = getWebpackServerConfig.call(this);
771 var serverCompiler = __WEBPACK_IMPORTED_MODULE_10_webpack___default()(serverConfig);
772 var outputPath = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13_path__["join"])(serverConfig.output.path, serverConfig.output.filename);
773 serverCompiler.outputFileSystem = mfs;
774 this.webpackServerWatcher = serverCompiler.watch({}, function (err, stats) {
775 if (err) throw err;
776 stats = stats.toJson();
777 stats.errors.forEach(function (err) {
778 return console.error(err);
779 }); // eslint-disable-line no-console
780 stats.warnings.forEach(function (err) {
781 return console.warn(err);
782 }); // eslint-disable-line no-console
783 createRenderer.call(_this2, mfs.readFileSync(outputPath, 'utf-8'));
784 });
785}
786
787function webpackRunClient() {
788 var _this3 = this;
789
790 return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {
791 var clientConfig = getWebpackClientConfig.call(_this3);
792 var serverCompiler = __WEBPACK_IMPORTED_MODULE_10_webpack___default()(clientConfig);
793 serverCompiler.run(function (err, stats) {
794 if (err) return reject(err);
795 console.log('[nuxt:build:client]\n', stats.toString({ chunks: false, colors: true })); // eslint-disable-line no-console
796 resolve();
797 });
798 });
799}
800
801function webpackRunServer() {
802 var _this4 = this;
803
804 return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {
805 var serverConfig = getWebpackServerConfig.call(_this4);
806 var serverCompiler = __WEBPACK_IMPORTED_MODULE_10_webpack___default()(serverConfig);
807 serverCompiler.run(function (err, stats) {
808 if (err) return reject(err);
809 console.log('[nuxt:build:server]\n', stats.toString({ chunks: false, colors: true })); // eslint-disable-line no-console
810 var bundlePath = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_13_path__["join"])(serverConfig.output.path, serverConfig.output.filename);
811 readFile(bundlePath, 'utf8').then(function (bundle) {
812 createRenderer.call(_this4, bundle);
813 resolve();
814 });
815 });
816 });
817}
818
819function createRenderer(bundle) {
820 // Create bundle renderer to give a fresh context for every request
821 var cacheConfig = false;
822 if (this.options.cache) {
823 this.options.cache = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default()(this.options.cache) !== 'object' ? {} : this.options.cache;
824 cacheConfig = __webpack_require__(38)(__WEBPACK_IMPORTED_MODULE_4_lodash___default.a.defaults(this.options.cache, {
825 max: 1000,
826 maxAge: 1000 * 60 * 15
827 }));
828 }
829 this.renderer = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12_vue_server_renderer__["createBundleRenderer"])(bundle, {
830 cache: cacheConfig
831 });
832 this.renderToString = __WEBPACK_IMPORTED_MODULE_9_pify___default()(this.renderer.renderToString);
833 this.renderToStream = this.renderer.renderToStream;
834}
835
836function watchPages() {
837 var _this5 = this;
838
839 var patterns = [r(this.srcDir, 'pages'), r(this.srcDir, 'pages/*.vue'), r(this.srcDir, 'pages/**/*.vue'), r(this.srcDir, 'layouts'), r(this.srcDir, 'layouts/*.vue'), r(this.srcDir, 'layouts/**/*.vue')];
840 var options = {
841 ignoreInitial: true
842 };
843 /* istanbul ignore next */
844 var refreshFiles = __WEBPACK_IMPORTED_MODULE_4_lodash___default.a.debounce(function () {
845 var d = Date.now();
846 __WEBPACK_IMPORTED_MODULE_5_co___default()(generateRoutesAndFiles.bind(_this5)).then(function () {
847 console.log('Time to gen:' + (Date.now() - d) + 'ms'); // eslint-disable-line no-console
848 });
849 }, 200);
850 this.pagesFilesWatcher = __WEBPACK_IMPORTED_MODULE_6_chokidar___default.a.watch(patterns, options).on('add', refreshFiles).on('unlink', refreshFiles);
851}
852
853/***/ }),
854/* 20 */
855/***/ (function(module, __webpack_exports__, __webpack_require__) {
856
857"use strict";
858/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(2);
859/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);
860/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_keys__ = __webpack_require__(16);
861/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_keys__);
862/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_typeof__ = __webpack_require__(17);
863/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_typeof___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_typeof__);
864/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_regenerator__ = __webpack_require__(3);
865/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_regenerator__);
866/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_fs_extra__ = __webpack_require__(6);
867/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_fs_extra___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_fs_extra__);
868/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_co__ = __webpack_require__(5);
869/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_co___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_co__);
870/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_pify__ = __webpack_require__(7);
871/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_pify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_pify__);
872/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_path_to_regexp__ = __webpack_require__(40);
873/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_path_to_regexp___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_path_to_regexp__);
874/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_lodash__ = __webpack_require__(0);
875/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_lodash__);
876/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_path__ = __webpack_require__(1);
877/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_path___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_path__);
878/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__utils__ = __webpack_require__(4);
879/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_html_minifier__ = __webpack_require__(35);
880/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_html_minifier___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_html_minifier__);
881
882
883
884
885
886
887var debug = __webpack_require__(9)('nuxt:generate');
888
889
890
891
892
893
894
895
896var copy = __WEBPACK_IMPORTED_MODULE_6_pify___default()(__WEBPACK_IMPORTED_MODULE_4_fs_extra___default.a.copy);
897var remove = __WEBPACK_IMPORTED_MODULE_6_pify___default()(__WEBPACK_IMPORTED_MODULE_4_fs_extra___default.a.remove);
898var writeFile = __WEBPACK_IMPORTED_MODULE_6_pify___default()(__WEBPACK_IMPORTED_MODULE_4_fs_extra___default.a.writeFile);
899var mkdirp = __WEBPACK_IMPORTED_MODULE_6_pify___default()(__WEBPACK_IMPORTED_MODULE_4_fs_extra___default.a.mkdirp);
900
901var defaults = {
902 dir: 'dist',
903 routeParams: {}
904};
905
906/* harmony default export */ __webpack_exports__["a"] = function () {
907 var _this = this;
908
909 var s = Date.now();
910 /*
911 ** Update loaders config to add router.base path
912 */
913 // this.options.build.loaders.forEach((config) => {
914 // if (['file', 'url', 'file-loader', 'url-loader'].includes(config.loader)) {
915 // config.query = config.query || {}
916 // config.query.publicPath = urlJoin(this.options.router.base, '/_nuxt/')
917 // }
918 // })
919 /*
920 ** Set variables
921 */
922 this.options.generate = __WEBPACK_IMPORTED_MODULE_8_lodash___default.a.defaultsDeep(this.options.generate, defaults);
923 var self = this;
924 var srcStaticPath = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9_path__["resolve"])(this.srcDir, 'static');
925 var srcBuiltPath = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9_path__["resolve"])(this.dir, '.nuxt', 'dist');
926 var distPath = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9_path__["resolve"])(this.dir, this.options.generate.dir);
927 var distNuxtPath = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9_path__["resolve"])(distPath, '_nuxt');
928 return __WEBPACK_IMPORTED_MODULE_5_co___default()(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_regenerator___default.a.mark(function _callee() {
929 return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_regenerator___default.a.wrap(function _callee$(_context) {
930 while (1) {
931 switch (_context.prev = _context.next) {
932 case 0:
933 _context.next = 2;
934 return self.build();
935
936 case 2:
937 _context.prev = 2;
938 _context.next = 5;
939 return remove(distPath);
940
941 case 5:
942 debug('Destination folder cleaned');
943 _context.next = 10;
944 break;
945
946 case 8:
947 _context.prev = 8;
948 _context.t0 = _context['catch'](2);
949
950 case 10:
951 if (!__WEBPACK_IMPORTED_MODULE_4_fs_extra___default.a.existsSync(srcStaticPath)) {
952 _context.next = 13;
953 break;
954 }
955
956 _context.next = 13;
957 return copy(srcStaticPath, distPath);
958
959 case 13:
960 _context.next = 15;
961 return copy(srcBuiltPath, distNuxtPath);
962
963 case 15:
964 debug('Static & build files copied');
965
966 case 16:
967 case 'end':
968 return _context.stop();
969 }
970 }
971 }, _callee, this, [[2, 8]]);
972 })).then(function () {
973 // Resolve config.generate.routesParams promises before generating the routes
974 return resolveRouteParams(_this.options.generate.routeParams);
975 }).then(function () {
976 /*
977 ** Generate html files from routes
978 */
979 var routes = [];
980 _this.routes.forEach(function (route) {
981 if (route.indexOf(':') !== -1 || route.indexOf('*') !== -1) {
982 var _ret = function () {
983 var routeParams = _this.options.generate.routeParams[route];
984 if (!routeParams) {
985 console.error('Could not generate the dynamic route ' + route + ', please add the mapping params in nuxt.config.js (generate.routeParams).'); // eslint-disable-line no-console
986 return {
987 v: process.exit(1)
988 };
989 }
990 var toPath = __WEBPACK_IMPORTED_MODULE_7_path_to_regexp___default.a.compile(route);
991 routes = routes.concat(routeParams.map(function (params) {
992 return toPath(params);
993 }));
994 }();
995
996 if ((typeof _ret === 'undefined' ? 'undefined' : __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_typeof___default()(_ret)) === "object") return _ret.v;
997 } else {
998 routes.push(route);
999 }
1000 });
1001 return __WEBPACK_IMPORTED_MODULE_5_co___default()(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_regenerator___default.a.mark(function _callee3() {
1002 return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_regenerator___default.a.wrap(function _callee3$(_context3) {
1003 while (1) {
1004 switch (_context3.prev = _context3.next) {
1005 case 0:
1006 if (!routes.length) {
1007 _context3.next = 5;
1008 break;
1009 }
1010
1011 _context3.next = 3;
1012 return routes.splice(0, 500).map(function (route) {
1013 return __WEBPACK_IMPORTED_MODULE_5_co___default()(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_regenerator___default.a.mark(function _callee2() {
1014 var _ref, html, path;
1015
1016 return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_regenerator___default.a.wrap(function _callee2$(_context2) {
1017 while (1) {
1018 switch (_context2.prev = _context2.next) {
1019 case 0:
1020 _context2.next = 2;
1021 return self.renderRoute(route, { _generate: true });
1022
1023 case 2:
1024 _ref = _context2.sent;
1025 html = _ref.html;
1026
1027 html = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11_html_minifier__["minify"])(html, {
1028 collapseBooleanAttributes: true,
1029 collapseWhitespace: true,
1030 decodeEntities: true,
1031 minifyCSS: true,
1032 minifyJS: true,
1033 processConditionalComments: true,
1034 removeAttributeQuotes: false,
1035 removeComments: false,
1036 removeEmptyAttributes: true,
1037 removeOptionalTags: true,
1038 removeRedundantAttributes: true,
1039 removeScriptTypeAttributes: true,
1040 removeStyleLinkTypeAttributes: true,
1041 removeTagWhitespace: true,
1042 sortAttributes: true,
1043 sortClassName: true,
1044 trimCustomFragments: true,
1045 useShortDoctype: true
1046 });
1047 path = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9_path__["join"])(route, __WEBPACK_IMPORTED_MODULE_9_path__["sep"], 'index.html'); // /about -> /about/index.html
1048
1049 debug('Generate file: ' + path);
1050 path = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9_path__["join"])(distPath, path);
1051 // Make sure the sub folders are created
1052 _context2.next = 10;
1053 return mkdirp(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9_path__["dirname"])(path));
1054
1055 case 10:
1056 _context2.next = 12;
1057 return writeFile(path, html, 'utf8');
1058
1059 case 12:
1060 case 'end':
1061 return _context2.stop();
1062 }
1063 }
1064 }, _callee2, this);
1065 }));
1066 });
1067
1068 case 3:
1069 _context3.next = 0;
1070 break;
1071
1072 case 5:
1073 case 'end':
1074 return _context3.stop();
1075 }
1076 }
1077 }, _callee3, this);
1078 }));
1079 }).then(function (pages) {
1080 // Add .nojekyll file to let Github Pages add the _nuxt/ folder
1081 // https://help.github.com/articles/files-that-start-with-an-underscore-are-missing/
1082 var nojekyllPath = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9_path__["resolve"])(distPath, '.nojekyll');
1083 return writeFile(nojekyllPath, '');
1084 }).then(function () {
1085 var duration = Math.round((Date.now() - s) / 100) / 10;
1086 debug('HTML Files generated in ' + duration + 's');
1087 return _this;
1088 });
1089};
1090
1091function resolveRouteParams(routeParams) {
1092 var promises = [];
1093 __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_keys___default()(routeParams).forEach(function (routePath) {
1094 var promise = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__utils__["promisifyRouteParams"])(routeParams[routePath]);
1095 promise.then(function (routeParamsData) {
1096 routeParams[routePath] = routeParamsData;
1097 }).catch(function (e) {
1098 console.error('Could not resolve routeParams[' + routePath + ']'); // eslint-disable-line no-console
1099 console.error(e); // eslint-disable-line no-console
1100 process.exit(1);
1101 });
1102 promises.push(promise);
1103 });
1104 return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a.all(promises);
1105}
1106
1107/***/ }),
1108/* 21 */
1109/***/ (function(module, __webpack_exports__, __webpack_require__) {
1110
1111"use strict";
1112/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(2);
1113/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);
1114/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator__ = __webpack_require__(3);
1115/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator__);
1116/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_co__ = __webpack_require__(5);
1117/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_co___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_co__);
1118/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils__ = __webpack_require__(4);
1119/* harmony export (immutable) */ __webpack_exports__["a"] = render;
1120/* harmony export (immutable) */ __webpack_exports__["b"] = renderRoute;
1121/* harmony export (immutable) */ __webpack_exports__["c"] = renderAndGetWindow;
1122
1123
1124
1125
1126var debug = __webpack_require__(9)('nuxt:render');
1127
1128
1129// force blue color
1130debug.color = 4;
1131
1132function render(req, res) {
1133 var _this = this;
1134
1135 if (!this.renderer && !this.dev) {
1136 console.error('> No build files found, please run `nuxt build` before launching `nuxt start`'); // eslint-disable-line no-console
1137 process.exit(1);
1138 }
1139 /* istanbul ignore if */
1140 if (!this.renderer) {
1141 setTimeout(function () {
1142 _this.render(req, res);
1143 }, 1000);
1144 return;
1145 }
1146 var self = this;
1147 var context = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils__["getContext"])(req, res);
1148 __WEBPACK_IMPORTED_MODULE_2_co___default()(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default.a.mark(function _callee() {
1149 var url;
1150 return __WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default.a.wrap(function _callee$(_context) {
1151 while (1) {
1152 switch (_context.prev = _context.next) {
1153 case 0:
1154 if (!self.dev) {
1155 _context.next = 5;
1156 break;
1157 }
1158
1159 _context.next = 3;
1160 return self.webpackDevMiddleware(req, res);
1161
1162 case 3:
1163 _context.next = 5;
1164 return self.webpackHotMiddleware(req, res);
1165
1166 case 5:
1167 // If base in req.url, remove it for the middlewares and vue-router
1168 if (self.options.router.base !== '/' && req.url.indexOf(self.options.router.base) === 0) {
1169 // Compatibility with base url for dev server
1170 req.url = req.url.replace(self.options.router.base, '/');
1171 }
1172 // Serve static/ files
1173 _context.next = 8;
1174 return self.serveStatic(req, res);
1175
1176 case 8:
1177 if (!(!self.dev && self._nuxtRegexp.test(req.url))) {
1178 _context.next = 14;
1179 break;
1180 }
1181
1182 url = req.url;
1183
1184 req.url = req.url.replace(self._nuxtRegexp, '/');
1185 _context.next = 13;
1186 return self.serveStaticNuxt(req, res);
1187
1188 case 13:
1189 /* istanbul ignore next */
1190 req.url = url;
1191
1192 case 14:
1193 case 'end':
1194 return _context.stop();
1195 }
1196 }
1197 }, _callee, this);
1198 })).then(function () {
1199 /* istanbul ignore if */
1200 if (_this.dev && _this._nuxtRegexp.test(req.url) && req.url.indexOf('.hot-update.json') !== -1) {
1201 res.statusCode = 404;
1202 return res.end();
1203 }
1204 return _this.renderRoute(req.url, context);
1205 }).then(function (_ref) {
1206 var html = _ref.html,
1207 error = _ref.error;
1208
1209 if (error) {
1210 res.statusCode = context.nuxt.error.statusCode || 500;
1211 }
1212 res.setHeader('Content-Type', 'text/html; charset=utf-8');
1213 res.setHeader('Content-Length', Buffer.byteLength(html));
1214 res.end(html, 'utf8');
1215 }).catch(function (err) {
1216 res.statusCode = 500;
1217 res.end(_this.errorTemplate({ err: err }), 'utf8');
1218 });
1219}
1220
1221function renderRoute(url) {
1222 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1223
1224 debug('Rendering url ' + url);
1225 // Add url and isSever to the context
1226 context.url = url;
1227 context.isServer = true;
1228 // Call rendertoSting from the bundleRenderer and generate the HTML (will update the context as well)
1229 var self = this;
1230 return __WEBPACK_IMPORTED_MODULE_2_co___default()(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default.a.mark(function _callee2() {
1231 var app, html;
1232 return __WEBPACK_IMPORTED_MODULE_1_babel_runtime_regenerator___default.a.wrap(function _callee2$(_context2) {
1233 while (1) {
1234 switch (_context2.prev = _context2.next) {
1235 case 0:
1236 _context2.next = 2;
1237 return self.renderToString(context);
1238
1239 case 2:
1240 app = _context2.sent;
1241
1242 if (!context.nuxt.serverRendered) {
1243 app = '<div id="__nuxt"></div>';
1244 }
1245 html = self.appTemplate({
1246 dev: self.dev, // Use to add the extracted CSS <link> in production
1247 baseUrl: self.options.router.base,
1248 APP: app,
1249 context: context,
1250 files: {
1251 css: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils__["urlJoin"])(self.options.router.base, '/_nuxt/', self.options.build.filenames.css),
1252 vendor: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils__["urlJoin"])(self.options.router.base, '/_nuxt/', self.options.build.filenames.vendor),
1253 app: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils__["urlJoin"])(self.options.router.base, '/_nuxt/', self.options.build.filenames.app)
1254 }
1255 });
1256 return _context2.abrupt('return', {
1257 html: html,
1258 error: context.nuxt.error,
1259 redirected: context.redirected
1260 });
1261
1262 case 6:
1263 case 'end':
1264 return _context2.stop();
1265 }
1266 }
1267 }, _callee2, this);
1268 }));
1269}
1270
1271// Function used to do dom checking via jsdom
1272var jsdom = null;
1273function renderAndGetWindow(url) {
1274 /* istanbul ignore if */
1275 if (!jsdom) {
1276 try {
1277 jsdom = __webpack_require__(37);
1278 } catch (e) {
1279 console.error('Fail when calling nuxt.renderAndGetWindow(url)'); // eslint-disable-line no-console
1280 console.error('jsdom module is not installed'); // eslint-disable-line no-console
1281 console.error('Please install jsdom with: npm install --save-dev jsdom'); // eslint-disable-line no-console
1282 process.exit(1);
1283 }
1284 }
1285 var virtualConsole = jsdom.createVirtualConsole().sendTo(console);
1286 url = url || 'http://localhost:3000';
1287 return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {
1288 jsdom.env({
1289 url: url,
1290 features: {
1291 FetchExternalResources: ['script', 'link'],
1292 ProcessExternalResources: ['script']
1293 },
1294 virtualConsole: virtualConsole,
1295 done: function done(err, window) {
1296 if (err) return reject(err);
1297 // Mock window.scrollTo
1298 window.scrollTo = function () {};
1299 // If Nuxt could not be loaded (error from the server-side)
1300 if (!window.__NUXT__) {
1301 return reject({
1302 message: 'Could not load the nuxt app',
1303 body: window.document.getElementsByTagName('body')[0].innerHTML
1304 });
1305 }
1306 // Used by nuxt.js to say when the components are loaded and the app ready
1307 window.onNuxtReady(function () {
1308 resolve(window);
1309 });
1310 }
1311 });
1312 });
1313}
1314
1315/***/ }),
1316/* 22 */
1317/***/ (function(module, __webpack_exports__, __webpack_require__) {
1318
1319"use strict";
1320/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(11);
1321/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);
1322/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(12);
1323/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);
1324
1325
1326
1327
1328var http = __webpack_require__(36);
1329
1330var Server = function () {
1331 function Server(nuxt) {
1332 __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, Server);
1333
1334 this.nuxt = nuxt;
1335 this.server = http.createServer(this.render.bind(this));
1336 return this;
1337 }
1338
1339 __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(Server, [{
1340 key: 'render',
1341 value: function render(req, res) {
1342 this.nuxt.render(req, res);
1343 return this;
1344 }
1345 }, {
1346 key: 'listen',
1347 value: function listen(port, host) {
1348 host = host || 'localhost';
1349 port = port || 3000;
1350 this.server.listen(port, host, function () {
1351 console.log('Ready on http://%s:%s', host, port); // eslint-disable-line no-console
1352 });
1353 return this;
1354 }
1355 }, {
1356 key: 'close',
1357 value: function close(cb) {
1358 return this.server.close(cb);
1359 }
1360 }]);
1361
1362 return Server;
1363}();
1364
1365/* harmony default export */ __webpack_exports__["a"] = Server;
1366
1367/***/ }),
1368/* 23 */
1369/***/ (function(module, exports) {
1370
1371module.exports = require("ansi-html");
1372
1373/***/ }),
1374/* 24 */
1375/***/ (function(module, exports) {
1376
1377module.exports = require("serve-static");
1378
1379/***/ }),
1380/* 25 */
1381/***/ (function(module, __webpack_exports__, __webpack_require__) {
1382
1383"use strict";
1384/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__ = __webpack_require__(15);
1385/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__);
1386/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify__ = __webpack_require__(8);
1387/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify__);
1388/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash__ = __webpack_require__(0);
1389/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash__);
1390/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_webpack__ = __webpack_require__(10);
1391/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_webpack___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_webpack__);
1392/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_extract_text_webpack_plugin__ = __webpack_require__(18);
1393/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_extract_text_webpack_plugin___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_extract_text_webpack_plugin__);
1394/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__base_config_js__ = __webpack_require__(14);
1395/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_path__ = __webpack_require__(1);
1396/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_path___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_path__);
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407/*
1408|--------------------------------------------------------------------------
1409| Webpack Client Config
1410|
1411| Generate public/dist/client-vendor-bundle.js
1412| Generate public/dist/client-bundle.js
1413|
1414| In production, will generate public/dist/style.css
1415|--------------------------------------------------------------------------
1416*/
1417/* harmony default export */ __webpack_exports__["a"] = function () {
1418 var config = __WEBPACK_IMPORTED_MODULE_5__base_config_js__["a" /* default */].call(this, { isClient: true });
1419
1420 // Entry
1421 config.entry.app = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6_path__["resolve"])(this.dir, '.nuxt', 'client.js');
1422
1423 // Add vendors
1424 if (this.options.store) {
1425 config.entry.vendor.push('vuex');
1426 }
1427 config.entry.vendor = config.entry.vendor.concat(this.options.build.vendor);
1428
1429 // Output
1430 config.output.path = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6_path__["resolve"])(this.dir, '.nuxt', 'dist');
1431 config.output.filename = this.options.build.filenames.app;
1432
1433 // env object defined in nuxt.config.js
1434 var env = {};
1435 __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_lodash__["each"])(this.options.env, function (value, key) {
1436 env['process.env.' + key] = typeof value === 'string' ? __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default()(value) : value;
1437 });
1438 // Webpack plugins
1439 config.plugins = (config.plugins || []).concat([
1440 // strip comments in Vue code
1441 new __WEBPACK_IMPORTED_MODULE_3_webpack___default.a.DefinePlugin(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default()(env, {
1442 'process.env.NODE_ENV': __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default()(this.dev ? 'development' : 'production'),
1443 'process.BROWSER_BUILD': true,
1444 'process.SERVER_BUILD': false
1445 })),
1446 // Extract vendor chunks for better caching
1447 new __WEBPACK_IMPORTED_MODULE_3_webpack___default.a.optimize.CommonsChunkPlugin({
1448 name: 'vendor',
1449 filename: this.options.build.filenames.vendor
1450 })]);
1451
1452 // Production client build
1453 if (!this.dev) {
1454 config.plugins.push(
1455 // Use ExtractTextPlugin to extract CSS into a single file
1456 new __WEBPACK_IMPORTED_MODULE_4_extract_text_webpack_plugin___default.a({
1457 filename: this.options.build.filenames.css,
1458 allChunks: true
1459 }),
1460 // This is needed in webpack 2 for minifying CSS
1461 new __WEBPACK_IMPORTED_MODULE_3_webpack___default.a.LoaderOptionsPlugin({
1462 minimize: true
1463 }),
1464 // Minify JS
1465 new __WEBPACK_IMPORTED_MODULE_3_webpack___default.a.optimize.UglifyJsPlugin({
1466 compress: {
1467 warnings: false
1468 }
1469 }));
1470 }
1471 // Extend config
1472 if (typeof this.options.build.extend === 'function') {
1473 this.options.build.extend(config, {
1474 dev: this.dev,
1475 isClient: true
1476 });
1477 }
1478 return config;
1479};
1480
1481/***/ }),
1482/* 26 */
1483/***/ (function(module, __webpack_exports__, __webpack_require__) {
1484
1485"use strict";
1486/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__ = __webpack_require__(16);
1487/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__);
1488/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_assign__ = __webpack_require__(15);
1489/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_assign___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_assign__);
1490/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_json_stringify__ = __webpack_require__(8);
1491/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_json_stringify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_json_stringify__);
1492/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_webpack__ = __webpack_require__(10);
1493/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_webpack___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_webpack__);
1494/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__base_config_js__ = __webpack_require__(14);
1495/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lodash__ = __webpack_require__(0);
1496/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_lodash__);
1497/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_fs__ = __webpack_require__(32);
1498/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_fs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_fs__);
1499/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_path__ = __webpack_require__(1);
1500/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_path___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_path__);
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512/*
1513|--------------------------------------------------------------------------
1514| Webpack Server Config
1515|--------------------------------------------------------------------------
1516*/
1517/* harmony default export */ __webpack_exports__["a"] = function () {
1518 var config = __WEBPACK_IMPORTED_MODULE_4__base_config_js__["a" /* default */].call(this, { isServer: true });
1519
1520 // env object defined in nuxt.config.js
1521 var env = {};
1522 __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5_lodash__["each"])(this.options.env, function (value, key) {
1523 env['process.env.' + key] = typeof value === 'string' ? __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_json_stringify___default()(value) : value;
1524 });
1525
1526 config = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_assign___default()(config, {
1527 target: 'node',
1528 devtool: false,
1529 entry: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_path__["resolve"])(this.dir, '.nuxt', 'server.js'),
1530 output: __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_assign___default()({}, config.output, {
1531 path: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_path__["resolve"])(this.dir, '.nuxt', 'dist'),
1532 filename: 'server-bundle.js',
1533 libraryTarget: 'commonjs2'
1534 }),
1535 plugins: (config.plugins || []).concat([new __WEBPACK_IMPORTED_MODULE_3_webpack___default.a.DefinePlugin(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_assign___default()(env, {
1536 'process.env.NODE_ENV': __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_json_stringify___default()(this.dev ? 'development' : 'production'),
1537 'process.BROWSER_BUILD': false,
1538 'process.SERVER_BUILD': true
1539 }))])
1540 });
1541
1542 // Externals
1543 var nuxtPackageJson = __webpack_require__(28);
1544 var projectPackageJsonPath = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7_path__["resolve"])(this.dir, 'package.json');
1545 config.externals = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(nuxtPackageJson.dependencies || {});
1546 if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6_fs__["existsSync"])(projectPackageJsonPath)) {
1547 try {
1548 var projectPackageJson = JSON.parse(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6_fs__["readFileSync"])(projectPackageJsonPath));
1549 config.externals = config.externals.concat(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(projectPackageJson.dependencies || {}));
1550 } catch (e) {}
1551 }
1552 config.externals = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5_lodash__["uniq"])(config.externals);
1553
1554 // Extend config
1555 if (typeof this.options.build.extend === 'function') {
1556 this.options.build.extend(config, {
1557 dev: this.dev,
1558 isServer: true
1559 });
1560 }
1561 return config;
1562};
1563
1564/***/ }),
1565/* 27 */
1566/***/ (function(module, __webpack_exports__, __webpack_require__) {
1567
1568"use strict";
1569/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__ = __webpack_require__(8);
1570/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__);
1571/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash__ = __webpack_require__(0);
1572/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash__);
1573
1574
1575
1576
1577
1578/* harmony default export */ __webpack_exports__["a"] = function (_ref) {
1579 var isClient = _ref.isClient;
1580
1581 var babelOptions = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default()(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_lodash__["defaults"])(this.options.build.babel, {
1582 plugins: ['transform-async-to-generator', 'transform-runtime'],
1583 presets: [['es2015', { modules: false }], 'stage-2']
1584 }));
1585 var config = {
1586 postcss: this.options.build.postcss,
1587 loaders: {
1588 'js': 'babel-loader?' + babelOptions,
1589 'less': 'vue-style-loader!css-loader!less-loader',
1590 'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax',
1591 'scss': 'vue-style-loader!css-loader!sass-loader',
1592 'stylus': 'vue-style-loader!css-loader!stylus-loader',
1593 'styl': 'vue-style-loader!css-loader!stylus-loader'
1594 },
1595 preserveWhitespace: false
1596 };
1597
1598 if (!this.dev && isClient) {
1599 // Use ExtractTextPlugin to extract CSS into a single file
1600 var ExtractTextPlugin = __webpack_require__(18);
1601 config.loaders.css = ExtractTextPlugin.extract({ loader: 'css-loader' });
1602 config.loaders.scss = ExtractTextPlugin.extract({ loader: 'css-loader!sass-loader', fallbackLoader: 'vue-style-loader' });
1603 config.loaders.sass = ExtractTextPlugin.extract({ loader: 'css-loader!sass-loader?indentedSyntax', fallbackLoader: 'vue-style-loader' });
1604 config.loaders.stylus = ExtractTextPlugin.extract({ loader: 'css-loader!stylus-loader', fallbackLoader: 'vue-style-loader' });
1605 config.loaders.less = ExtractTextPlugin.extract({ loader: 'css-loader!less-loader', fallbackLoader: 'vue-style-loader' });
1606 }
1607
1608 // Return the config
1609 return config;
1610};
1611
1612/***/ }),
1613/* 28 */
1614/***/ (function(module, exports) {
1615
1616module.exports = {
1617 "name": "nuxt",
1618 "version": "0.9.6",
1619 "description": "A minimalistic framework for server-rendered Vue.js applications (inspired by Next.js)",
1620 "contributors": [
1621 {
1622 "name": "Sebastien Chopin"
1623 },
1624 {
1625 "name": "Alexandre Chopin"
1626 }
1627 ],
1628 "main": "./index.js",
1629 "license": "MIT",
1630 "repository": {
1631 "type": "git",
1632 "url": "git+https://github.com/nuxt/nuxt.js"
1633 },
1634 "files": [
1635 "bin",
1636 "dist",
1637 "index.js"
1638 ],
1639 "keywords": [
1640 "nuxt",
1641 "nuxt.js",
1642 "nuxtjs",
1643 "vue",
1644 "vue.js",
1645 "vuejs",
1646 "next.js",
1647 "vue ssr"
1648 ],
1649 "homepage": "https://github.com/nuxt/nuxt.js#readme",
1650 "bin": {
1651 "nuxt": "./bin/nuxt"
1652 },
1653 "scripts": {
1654 "test": "nyc ava --serial test/",
1655 "coverage": "nyc report --reporter=text-lcov > coverage.lcov && codecov",
1656 "lint": "eslint --ext .js,.vue bin lib pages test/*.js --ignore-pattern lib/app",
1657 "build": "webpack",
1658 "watch": "webpack --watch",
1659 "precommit": "npm run lint",
1660 "prepublish": "npm run build"
1661 },
1662 "dependencies": {
1663 "ansi-html": "^0.0.7",
1664 "autoprefixer": "^6.6.0",
1665 "babel-core": "^6.21.0",
1666 "babel-loader": "^6.2.10",
1667 "babel-plugin-array-includes": "^2.0.3",
1668 "babel-plugin-transform-async-to-generator": "^6.16.0",
1669 "babel-plugin-transform-runtime": "^6.15.0",
1670 "babel-preset-es2015": "^6.18.0",
1671 "babel-preset-stage-2": "^6.18.0",
1672 "chokidar": "^1.6.1",
1673 "co": "^4.6.0",
1674 "cross-spawn": "^5.0.1",
1675 "css-loader": "^0.26.1",
1676 "debug": "^2.6.0",
1677 "extract-text-webpack-plugin": "2.0.0-beta.4",
1678 "file-loader": "^0.9.0",
1679 "fs-extra": "^1.0.0",
1680 "glob": "^7.1.1",
1681 "hash-sum": "^1.0.2",
1682 "html-minifier": "^3.2.3",
1683 "lodash": "^4.17.4",
1684 "lru-cache": "^4.0.2",
1685 "memory-fs": "^0.4.1",
1686 "path-to-regexp": "^1.7.0",
1687 "pify": "^2.3.0",
1688 "serialize-javascript": "^1.3.0",
1689 "serve-static": "^1.11.1",
1690 "url-loader": "^0.5.7",
1691 "vue": "^2.1.8",
1692 "vue-loader": "^10.0.2",
1693 "vue-meta": "^0.5.3",
1694 "vue-router": "^2.1.1",
1695 "vue-server-renderer": "^2.1.8",
1696 "vue-template-compiler": "^2.1.8",
1697 "vuex": "^2.1.1",
1698 "webpack": "^2.2.0-rc.5",
1699 "webpack-dev-middleware": "^1.9.0",
1700 "webpack-hot-middleware": "^2.14.0"
1701 },
1702 "devDependencies": {
1703 "ava": "^0.17.0",
1704 "babel-eslint": "^7.1.1",
1705 "codecov": "^1.0.1",
1706 "copy-webpack-plugin": "^4.0.1",
1707 "eslint": "^3.10.2",
1708 "eslint-config-standard": "^6.2.1",
1709 "eslint-plugin-html": "^1.7.0",
1710 "eslint-plugin-promise": "^3.4.0",
1711 "eslint-plugin-standard": "^2.0.1",
1712 "finalhandler": "^0.5.1",
1713 "jsdom": "^9.8.3",
1714 "json-loader": "^0.5.4",
1715 "nyc": "^10.0.0",
1716 "request": "^2.79.0",
1717 "request-promise-native": "^1.0.3",
1718 "webpack-node-externals": "^1.5.4"
1719 }
1720};
1721
1722/***/ }),
1723/* 29 */
1724/***/ (function(module, exports) {
1725
1726module.exports = require("autoprefixer");
1727
1728/***/ }),
1729/* 30 */
1730/***/ (function(module, exports) {
1731
1732module.exports = require("babel-runtime/core-js/array/from");
1733
1734/***/ }),
1735/* 31 */
1736/***/ (function(module, exports) {
1737
1738module.exports = require("chokidar");
1739
1740/***/ }),
1741/* 32 */
1742/***/ (function(module, exports) {
1743
1744module.exports = require("fs");
1745
1746/***/ }),
1747/* 33 */
1748/***/ (function(module, exports) {
1749
1750module.exports = require("glob");
1751
1752/***/ }),
1753/* 34 */
1754/***/ (function(module, exports) {
1755
1756module.exports = require("hash-sum");
1757
1758/***/ }),
1759/* 35 */
1760/***/ (function(module, exports) {
1761
1762module.exports = require("html-minifier");
1763
1764/***/ }),
1765/* 36 */
1766/***/ (function(module, exports) {
1767
1768module.exports = require("http");
1769
1770/***/ }),
1771/* 37 */
1772/***/ (function(module, exports) {
1773
1774module.exports = require("jsdom");
1775
1776/***/ }),
1777/* 38 */
1778/***/ (function(module, exports) {
1779
1780module.exports = require("lru-cache");
1781
1782/***/ }),
1783/* 39 */
1784/***/ (function(module, exports) {
1785
1786module.exports = require("memory-fs");
1787
1788/***/ }),
1789/* 40 */
1790/***/ (function(module, exports) {
1791
1792module.exports = require("path-to-regexp");
1793
1794/***/ }),
1795/* 41 */
1796/***/ (function(module, exports) {
1797
1798module.exports = require("vue-server-renderer");
1799
1800/***/ }),
1801/* 42 */
1802/***/ (function(module, exports) {
1803
1804module.exports = require("webpack-dev-middleware");
1805
1806/***/ }),
1807/* 43 */
1808/***/ (function(module, exports) {
1809
1810module.exports = require("webpack-hot-middleware");
1811
1812/***/ }),
1813/* 44 */
1814/***/ (function(module, __webpack_exports__, __webpack_require__) {
1815
1816"use strict";
1817Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
1818/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__ = __webpack_require__(3);
1819/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__);
1820/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise__ = __webpack_require__(2);
1821/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise__);
1822/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(11);
1823/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__);
1824/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass__ = __webpack_require__(12);
1825/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass__);
1826/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash__ = __webpack_require__(0);
1827/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash__);
1828/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_co__ = __webpack_require__(5);
1829/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_co___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_co__);
1830/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_fs_extra__ = __webpack_require__(6);
1831/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_fs_extra___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_fs_extra__);
1832/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_pify__ = __webpack_require__(7);
1833/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_pify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_pify__);
1834/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_ansi_html__ = __webpack_require__(23);
1835/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_ansi_html___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_ansi_html__);
1836/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_serialize_javascript__ = __webpack_require__(13);
1837/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_serialize_javascript___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_serialize_javascript__);
1838/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__server__ = __webpack_require__(22);
1839/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__build__ = __webpack_require__(19);
1840/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__render__ = __webpack_require__(21);
1841/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__generate__ = __webpack_require__(20);
1842/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_serve_static__ = __webpack_require__(24);
1843/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_serve_static___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14_serve_static__);
1844/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_path__ = __webpack_require__(1);
1845/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_path___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_15_path__);
1846/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__utils__ = __webpack_require__(4);
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866__WEBPACK_IMPORTED_MODULE_16__utils__["setAnsiColors"](__WEBPACK_IMPORTED_MODULE_8_ansi_html___default.a);
1867
1868var Nuxt = function () {
1869 function Nuxt() {
1870 var _this = this;
1871
1872 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1873
1874 __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, Nuxt);
1875
1876 var defaults = {
1877 // special options
1878 _renderer: true,
1879 _build: true,
1880 // general options
1881 dev: true,
1882 env: {},
1883 head: {},
1884 plugins: [],
1885 css: [],
1886 cache: false,
1887 loading: {
1888 color: 'black',
1889 failedColor: 'red',
1890 height: '2px',
1891 duration: 5000
1892 },
1893 transition: {
1894 name: 'page',
1895 mode: 'out-in'
1896 },
1897 router: {
1898 base: '/',
1899 linkActiveClass: 'nuxt-link-active'
1900 },
1901 build: {}
1902 };
1903 if (options.loading === true) delete options.loading;
1904 if (typeof options.transition === 'string') options.transition = { name: options.transition };
1905 this.options = __WEBPACK_IMPORTED_MODULE_4_lodash___default.a.defaultsDeep(options, defaults);
1906 // Env variables
1907 this.dev = this.options.dev;
1908 this.dir = typeof options.rootDir === 'string' && options.rootDir ? options.rootDir : process.cwd();
1909 this.srcDir = typeof options.srcDir === 'string' && options.srcDir ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15_path__["resolve"])(this.dir, options.srcDir) : this.dir;
1910 // If store defined, update store options to true
1911 if (__WEBPACK_IMPORTED_MODULE_6_fs_extra___default.a.existsSync(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15_path__["join"])(this.srcDir, 'store'))) {
1912 this.options.store = true;
1913 }
1914 // Template
1915 this.appTemplate = __WEBPACK_IMPORTED_MODULE_4_lodash___default.a.template(__WEBPACK_IMPORTED_MODULE_6_fs_extra___default.a.readFileSync(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15_path__["resolve"])(__dirname, 'views', 'app.html'), 'utf8'), {
1916 imports: { serialize: __WEBPACK_IMPORTED_MODULE_9_serialize_javascript___default.a }
1917 });
1918 this.errorTemplate = __WEBPACK_IMPORTED_MODULE_4_lodash___default.a.template(__WEBPACK_IMPORTED_MODULE_6_fs_extra___default.a.readFileSync(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15_path__["resolve"])(__dirname, 'views', 'error.html'), 'utf8'), {
1919 imports: {
1920 ansiHTML: __WEBPACK_IMPORTED_MODULE_8_ansi_html___default.a,
1921 encodeHtml: __WEBPACK_IMPORTED_MODULE_16__utils__["encodeHtml"]
1922 }
1923 });
1924 // renderer used by Vue.js (via createBundleRenderer)
1925 this.renderer = null;
1926 // For serving static/ files to /
1927 this.serveStatic = __WEBPACK_IMPORTED_MODULE_7_pify___default()(__WEBPACK_IMPORTED_MODULE_14_serve_static___default()(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15_path__["resolve"])(this.srcDir, 'static')));
1928 // For serving .nuxt/dist/ files
1929 this._nuxtRegexp = /^\/_nuxt\//;
1930 this.serveStaticNuxt = __WEBPACK_IMPORTED_MODULE_7_pify___default()(__WEBPACK_IMPORTED_MODULE_14_serve_static___default()(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15_path__["resolve"])(this.dir, '.nuxt', 'dist')));
1931 // Add this.Server Class
1932 this.Server = __WEBPACK_IMPORTED_MODULE_10__server__["a" /* default */];
1933 // Add this.build
1934 __WEBPACK_IMPORTED_MODULE_11__build__["a" /* options */].call(this); // Add build options
1935 this.build = function () {
1936 return __WEBPACK_IMPORTED_MODULE_5_co___default()(__WEBPACK_IMPORTED_MODULE_11__build__["b" /* build */].bind(_this));
1937 };
1938 // Add this.render and this.renderRoute
1939 this.render = __WEBPACK_IMPORTED_MODULE_12__render__["a" /* render */].bind(this);
1940 this.renderRoute = __WEBPACK_IMPORTED_MODULE_12__render__["b" /* renderRoute */].bind(this);
1941 this.renderAndGetWindow = __WEBPACK_IMPORTED_MODULE_12__render__["c" /* renderAndGetWindow */].bind(this);
1942 // Add this.generate
1943 this.generate = __WEBPACK_IMPORTED_MODULE_13__generate__["a" /* default */].bind(this);
1944 // Add this.utils (tests purpose)
1945 this.utils = __WEBPACK_IMPORTED_MODULE_16__utils__;
1946 return this;
1947 }
1948
1949 __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default()(Nuxt, [{
1950 key: 'close',
1951 value: function close(callback) {
1952 var _this2 = this;
1953
1954 var promises = [];
1955 /* istanbul ignore if */
1956 if (this.webpackDevMiddleware) {
1957 var p = new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {
1958 _this2.webpackDevMiddleware.close(function () {
1959 return resolve();
1960 });
1961 });
1962 promises.push(p);
1963 }
1964 /* istanbul ignore if */
1965 if (this.webpackServerWatcher) {
1966 var _p = new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {
1967 _this2.webpackServerWatcher.close(function () {
1968 return resolve();
1969 });
1970 });
1971 promises.push(_p);
1972 }
1973 /* istanbul ignore if */
1974 if (this.pagesFilesWatcher) {
1975 this.pagesFilesWatcher.close();
1976 }
1977 return __WEBPACK_IMPORTED_MODULE_5_co___default()(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee() {
1978 return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee$(_context) {
1979 while (1) {
1980 switch (_context.prev = _context.next) {
1981 case 0:
1982 _context.next = 2;
1983 return promises;
1984
1985 case 2:
1986 case 'end':
1987 return _context.stop();
1988 }
1989 }
1990 }, _callee, this);
1991 })).then(function () {
1992 if (typeof callback === 'function') callback();
1993 });
1994 }
1995 }]);
1996
1997 return Nuxt;
1998}();
1999
2000/* harmony default export */ __webpack_exports__["default"] = Nuxt;
2001
2002/***/ })
2003/******/ ]);
2004//# sourceMappingURL=nuxt.js.map
\No newline at end of file