From 352c1eb4d684fa8a07040d596bcf71e81015c98a Mon Sep 17 00:00:00 2001 From: Pierre Charles Date: Sun, 3 Mar 2019 11:32:41 +0100 Subject: [PATCH 01/12] :tada: Updating template using Typescript and Vue CLI 3 --- template/.babelrc | 5 - template/.browserslistrc | 3 + template/.editorconfig | 9 - template/.env.dist | 2 + template/.eslintignore | 2 - template/.eslintrc.js | 19 - template/.gitignore | 29 +- template/README.md | 125 +- template/babel.config.js | 5 + template/build/build.js | 47 - template/build/dev-client.js | 9 - template/build/dev-server.js | 83 - template/build/package-electron.js | 38 - template/build/utils.js | 57 - template/build/webpack.base.conf.js | 123 - template/build/webpack.dev.conf.js | 40 - template/build/webpack.prod.conf.js | 81 - template/config/dev.env.js | 16 - template/config/index.js | 47 - template/config/prod.env.js | 3 - template/cypress.json | 3 + template/electron/main.js | 120 - template/index.html | 9 - template/locales/en.json | 21 + template/locales/en/index.js | 20 - template/locales/fr.json | 21 + template/locales/fr/index.js | 20 - template/locales/index.js | 19 - template/package.json | 100 +- template/postcss.config.js | 5 + template/public/favicon.ico | Bin 0 -> 100575 bytes template/public/index.html | 17 + template/settings/default.json | 2 +- template/src/App.vue | 22 +- template/src/components/LangSwitcher.vue | 31 +- template/src/components/Menu.vue | 21 +- template/src/lib/locales/index.ts | 24 + template/src/lib/router/index.ts | 9 + template/src/lib/router/routes.ts | 25 + template/src/lib/settings.js | 52 - template/src/lib/store/index.ts | 40 + template/src/main.js | 22 - template/src/main.ts | 14 + template/src/router/index.js | 10 - template/src/router/routes.js | 22 - template/src/shims-json.d.ts | 4 + template/src/shims-tsx.d.ts | 13 + template/src/shims-vue.d.ts | 4 + template/src/store/index.js | 43 - template/src/views/Garden.vue | 21 +- template/src/views/Home.vue | 10 +- template/src/views/Plant.vue | 48 +- template/static/.gitkeep | 0 template/tests/e2e/plugins/index.js | 24 + template/tests/e2e/specs/test.js | 8 + template/tests/e2e/support/commands.js | 25 + template/tests/e2e/support/index.js | 20 + template/tests/unit/example.spec.ts | 13 + template/tsconfig.json | 41 + template/tslint.json | 20 + template/vue.config.js | 13 + template/yarn.lock | 7640 ++++++++++++++++++++++ 62 files changed, 8228 insertions(+), 1111 deletions(-) delete mode 100755 template/.babelrc create mode 100644 template/.browserslistrc delete mode 100755 template/.editorconfig create mode 100644 template/.env.dist delete mode 100755 template/.eslintignore delete mode 100755 template/.eslintrc.js mode change 100755 => 100644 template/.gitignore mode change 100755 => 100644 template/README.md create mode 100644 template/babel.config.js delete mode 100755 template/build/build.js delete mode 100755 template/build/dev-client.js delete mode 100755 template/build/dev-server.js delete mode 100755 template/build/package-electron.js delete mode 100755 template/build/utils.js delete mode 100755 template/build/webpack.base.conf.js delete mode 100755 template/build/webpack.dev.conf.js delete mode 100755 template/build/webpack.prod.conf.js delete mode 100755 template/config/dev.env.js delete mode 100755 template/config/index.js delete mode 100755 template/config/prod.env.js create mode 100644 template/cypress.json delete mode 100755 template/electron/main.js delete mode 100755 template/index.html create mode 100644 template/locales/en.json delete mode 100644 template/locales/en/index.js create mode 100644 template/locales/fr.json delete mode 100644 template/locales/fr/index.js delete mode 100644 template/locales/index.js mode change 100755 => 100644 template/package.json create mode 100644 template/postcss.config.js create mode 100644 template/public/favicon.ico create mode 100644 template/public/index.html mode change 100644 => 100755 template/settings/default.json create mode 100644 template/src/lib/locales/index.ts create mode 100644 template/src/lib/router/index.ts create mode 100644 template/src/lib/router/routes.ts delete mode 100755 template/src/lib/settings.js create mode 100644 template/src/lib/store/index.ts delete mode 100644 template/src/main.js create mode 100644 template/src/main.ts delete mode 100644 template/src/router/index.js delete mode 100644 template/src/router/routes.js create mode 100644 template/src/shims-json.d.ts create mode 100644 template/src/shims-tsx.d.ts create mode 100644 template/src/shims-vue.d.ts delete mode 100644 template/src/store/index.js delete mode 100644 template/static/.gitkeep create mode 100644 template/tests/e2e/plugins/index.js create mode 100644 template/tests/e2e/specs/test.js create mode 100644 template/tests/e2e/support/commands.js create mode 100644 template/tests/e2e/support/index.js create mode 100644 template/tests/unit/example.spec.ts create mode 100644 template/tsconfig.json create mode 100644 template/tslint.json create mode 100644 template/vue.config.js create mode 100644 template/yarn.lock diff --git a/template/.babelrc b/template/.babelrc deleted file mode 100755 index 41789ca..0000000 --- a/template/.babelrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "presets": ["es2015", "stage-2"], - "plugins": ["transform-runtime"], - "comments": false -} diff --git a/template/.browserslistrc b/template/.browserslistrc new file mode 100644 index 0000000..9dee646 --- /dev/null +++ b/template/.browserslistrc @@ -0,0 +1,3 @@ +> 1% +last 2 versions +not ie <= 8 diff --git a/template/.editorconfig b/template/.editorconfig deleted file mode 100755 index 9d08a1a..0000000 --- a/template/.editorconfig +++ /dev/null @@ -1,9 +0,0 @@ -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true diff --git a/template/.env.dist b/template/.env.dist new file mode 100644 index 0000000..a539789 --- /dev/null +++ b/template/.env.dist @@ -0,0 +1,2 @@ +NODE_ENV="development" +VUE_APP_SEED_KEY="seed" diff --git a/template/.eslintignore b/template/.eslintignore deleted file mode 100755 index 34af377..0000000 --- a/template/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/template/.eslintrc.js b/template/.eslintrc.js deleted file mode 100755 index af09600..0000000 --- a/template/.eslintrc.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = { - root: true, - parserOptions: { - sourceType: 'module' - }, - // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - 'rules': { - // allow paren-less arrow functions - 'arrow-parens': 0, - // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 - } -} diff --git a/template/.gitignore b/template/.gitignore old mode 100755 new mode 100644 index d4eea3a..f95fb1a --- a/template/.gitignore +++ b/template/.gitignore @@ -1,6 +1,25 @@ .DS_Store -node_modules/ -dist/ -npm-debug.log -.cache/ -releases/ +node_modules +/dist + +/tests/e2e/videos/ +/tests/e2e/screenshots/ + +# local env files +.env +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw* diff --git a/template/README.md b/template/README.md old mode 100755 new mode 100644 index 209c5f2..0860f83 --- a/template/README.md +++ b/template/README.md @@ -1,43 +1,98 @@ +[![version](https://img.shields.io/badge/version-1.0-green.svg?style=flat-square)](https://github.com/pierrechls/seed) [![front-end-framework](https://img.shields.io/badge/framework-vue.js-lightgrey.svg?style=flat-square)](http://vuejs.org/) [![router](https://img.shields.io/badge/router-vue--router-lightgrey.svg?style=flat-square)](http://router.vuejs.org/en/index.html) [![internationalization](https://img.shields.io/badge/internationalization-vue--i18n-lightgrey.svg?style=flat-square)](https://github.com/kazupon/vue-i18n) [![js-standard-style](https://img.shields.io/badge/code_style-standard-lightgrey.svg?style=flat-square)](http://standardjs.com/) [![sass-stylesheets](https://img.shields.io/badge/stylesheets-sass-lightgrey.svg?style=flat-square)](http://sass-lang.com/) + # {{ name }} > {{ description }} -[![version](https://img.shields.io/badge/version-1.0-green.svg?style=flat-square)](https://github.com/pierrechls/seed) [![front-end-framework](https://img.shields.io/badge/framework-vue.js-lightgrey.svg?style=flat-square)](http://vuejs.org/) [![router](https://img.shields.io/badge/router-vue--router-lightgrey.svg?style=flat-square)](http://router.vuejs.org/en/index.html) [![internationalization](https://img.shields.io/badge/internationalization-vue--i18n-lightgrey.svg?style=flat-square)](https://github.com/kazupon/vue-i18n) [![js-standard-style](https://img.shields.io/badge/code_style-standard-lightgrey.svg?style=flat-square)](http://standardjs.com/) [![sass-stylesheets](https://img.shields.io/badge/stylesheets-sass-lightgrey.svg?style=flat-square)](http://sass-lang.com/) +# :grey_exclamation: Prior installation + +- [Node.js](https://nodejs.org/en/download/) +- [Yarn](https://yarnpkg.com/lang/en/docs/install/) +- [Vue CLI](https://cli.vuejs.org/guide/installation.html) + +# :rocket: How to install ? + +#### Clone the repo + +```bash +$ git clone +``` + +#### Install dependencies + +``` +$ yarn install +``` + +# :hammer_and_wrench: How to configure ? + +#### Environnement settings + +Create _.env_ file by running : + +```bash +$ cp .env.dist .env +``` + +#### Application settings + +Go to `/settings` folder and edit _default.json_ file. + +#### Locales + +Go to `/locales` folder. + +For adding a new languague : + +- Create a new _{lang}.json_ file +- Go to `/src/lib/locales` and import your new locale file + +#### Install dependencies + +``` +$ yarn install +``` + +# :video_game: How to use it ? + +### Compiles and hot-reloads for development + +``` +$ yarn run serve +``` + +### Compiles and minifies for production + +``` +$ yarn run build +``` + +### Run your tests + +``` +$ yarn run test +``` + +### Lints and fixes files -## Build Setup - -``` bash -# install dependencies -npm install - -# serve with hot reload at localhost:8080 -# -t (or --target=) option is optionnal and override the default webpack target -npm start [-- -t {target}] # or `npm run dev` - -# launch electron and open a window at localhost:8080 -# you must have run the `npm run dev` command in an other terminal window -# -s option is optionnal is used to add settings over the default settings -npm run electron [-- -s {settings}] - -# build for production with minifications and package the app. -npm run build -{{#electron}} -npm run build:darwin -npm run build:linux -npm run build:win32 -npm run build:all # All platforms, all architectures -npm run build:no-package # Standalone build -{{/electron}} -# Note: use the -t (or --target=) option to override the default webpack target (https://webpack.github.io/docs/configuration.html#target). For example `npm run build -- -t web`. - -{{#electron}} -# package a portable binary for a specific platform from the available build. -npm run package # package for you current platform -npm run package:darwin -npm run package:linux -npm run package:win32 -npm run package:all # All platforms, all architectures -{{/electron}} +``` +$ yarn run lint +``` + +### Run your end-to-end tests + +``` +$ yarn run test:e2e ``` +### Run your unit tests + +``` +$ yarn run test:unit +``` + +## :books: Documentation + For detailed explanation on how things work, checkout the [guide](http://pierrechls.github.io/seed). + +You can also see [Vue.js guide](https://vuejs.org/v2/guide/), [Vue CLI configuration reference](https://cli.vuejs.org/config/), [Vuex guide](https://vuex.vuejs.org/guide/) and [Vue i18n guide](https://kazupon.github.io/vue-i18n/guide/formatting.html). diff --git a/template/babel.config.js b/template/babel.config.js new file mode 100644 index 0000000..ba17966 --- /dev/null +++ b/template/babel.config.js @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + '@vue/app' + ] +} diff --git a/template/build/build.js b/template/build/build.js deleted file mode 100755 index 96e34c8..0000000 --- a/template/build/build.js +++ /dev/null @@ -1,47 +0,0 @@ -// https://github.com/shelljs/shelljs -require('shelljs/global') -env.NODE_ENV = 'production' - -var path = require('path') -var config = require('../config/index') -var ora = require('ora') -var webpack = require('webpack') -var webpackConfig = require('./webpack.prod.conf') - -console.log( - {{#if electron}} - ' Tip:\n' + - ' Built files are not meant to be served over an HTTP server.\n' + - ' You have to open index.html over file://\n' - {{else}} - ' Tip:\n' + - ' Built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - {{/if}} -) - -var spinner = ora({ - text:'building for production...', - spinner: { - interval: 60, - frames: ['๐ŸŒฑ ', ' ๐ŸŒฑ ', ' ๐ŸŒฑ ', ' ๐ŸŒฟ ', ' ๐ŸŒฟ ', ' ๐ŸŒฟ ', ' ๐ŸŒณ ', ' ๐ŸŒณ ', ' ๐ŸŒณ'] - } -}) -spinner.start() - -var assetsPath = path.join(config.build.assetsRoot, config.build.assetsSubDirectory) -rm('-rf', assetsPath) -mkdir('-p', assetsPath) -cp('-R', 'static/', assetsPath) - -webpack(webpackConfig, function (err, stats) { - spinner.stop() - if (err) throw err - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n') -}) diff --git a/template/build/dev-client.js b/template/build/dev-client.js deleted file mode 100755 index 18aa1e2..0000000 --- a/template/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -require('eventsource-polyfill') -var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') - -hotClient.subscribe(function (event) { - if (event.action === 'reload') { - window.location.reload() - } -}) diff --git a/template/build/dev-server.js b/template/build/dev-server.js deleted file mode 100755 index a6f55ba..0000000 --- a/template/build/dev-server.js +++ /dev/null @@ -1,83 +0,0 @@ -var path = require('path') -var express = require('express') -var webpack = require('webpack') -var config = require('../config/index') -var proxyMiddleware = require('http-proxy-middleware') -var webpackConfig = require('./webpack.dev.conf') -{{#if_eq electron false}} -var opn = require('opn') -{{/if_eq}} - -// default port where dev server listens for incoming traffic -var port = process.env.PORT || config.dev.port -// Define HTTP proxies to your custom API backend -// https://github.com/chimurai/http-proxy-middleware -var proxyTable = config.dev.proxyTable - -var app = express() -var compiler = webpack(webpackConfig) - -var devMiddleware = require('webpack-dev-middleware')(compiler, { - publicPath: webpackConfig.output.publicPath, - stats: { - colors: true, - chunks: false - } -}) - -var hotMiddleware = require('webpack-hot-middleware')(compiler) -// force page reload when html-webpack-plugin template changes -compiler.plugin('compilation', function (compilation) { - compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { - hotMiddleware.publish({ action: 'reload' }) - cb() - }) -}) - -// proxy api requests -Object.keys(proxyTable).forEach(function (context) { - var options = proxyTable[context] - if (typeof options === 'string') { - options = { target: options } - } - app.use(proxyMiddleware(context, options)) -}) - -// handle fallback for HTML5 history API -app.use(require('connect-history-api-fallback')()) - -// serve webpack bundle output -app.use(devMiddleware) - -// enable hot-reload and state-preserving -// compilation error display -app.use(hotMiddleware) - -// serve pure static assets -var staticPath = path.posix.join(config.build.assetsPublicPath, config.build.assetsSubDirectory) -app.use(staticPath, express.static('./static')) - -const mfs = devMiddleware.fileSystem -const file = path.join(webpackConfig.output.path, 'index.html') - -app.get('*', (req, res) => { - devMiddleware.waitUntilValid(() => { - const html = mfs.readFileSync(file) - res.end(html) - }) -}) - -module.exports = app.listen(port, function (err) { - if (err) { - console.log(err) - return - } - console.log('Listening at http://localhost:' + port + '\n') - {{#if_eq electron false}} - opn(`http://localhost:${port}`) - {{/if_eq}} - - {{#electron}} - require('child_process').exec('npm run electron') - {{/electron}} -}) diff --git a/template/build/package-electron.js b/template/build/package-electron.js deleted file mode 100755 index 2b89791..0000000 --- a/template/build/package-electron.js +++ /dev/null @@ -1,38 +0,0 @@ -var path = require('path') -var config = require('../config/index') -var packager = require('electron-packager') -var program = require('commander') - -var devDependencies = require('../package.json').devDependencies -var electronVersion = null -for(var dependency in devDependencies) { - if(dependency === 'electron-prebuilt'){ - electronVersion = devDependencies[dependency] - } -} - -program - .option( - '-p --platform ', - `Package destination platform. Default to '${require('os').platform()}'.`, - /^(linux|darwin|win32|all)$/i, - require('os').platform() - ).parse(process.argv) - -const packageOptions = { - dir: config.build.appRoot, - out: config.build.packageDestination, - name: config.build.name, - 'app-version': config.build.version, - ignore: config.build.ignoredPaths, - prune: true, - overwrite: true, - platform: program.platform, - arch: 'x64', - version: electronVersion -} - -packager(packageOptions, function (err, appPaths) { - if (err) throw err - console.log('\nDone packaging app.\nPaths to releases created:\n', appPaths) -}) diff --git a/template/build/utils.js b/template/build/utils.js deleted file mode 100755 index 2d27e4f..0000000 --- a/template/build/utils.js +++ /dev/null @@ -1,57 +0,0 @@ -var path = require('path') -var config = require('../config/index') -var ExtractTextPlugin = require('extract-text-webpack-plugin') - -exports.assetsPath = function (_path) { - return path.posix.join(config.build.assetsSubDirectory, _path) -} - -exports.cssLoaders = function (options) { - options = options || {} - // generate loader string to be used with extract text plugin - function generateLoaders (loaders) { - var sourceLoader = loaders.map(function (loader) { - var extraParamChar - if (/\?/.test(loader)) { - loader = loader.replace(/\?/, '-loader?') - extraParamChar = '&' - } else { - loader = loader + '-loader' - extraParamChar = '?' - } - return loader + (options.sourceMap ? extraParamChar + 'sourceMap' : '') - }).join('!') - - if (options.extract) { - //return ExtractTextPlugin.extract('vue-style-loader', sourceLoader) - return ExtractTextPlugin.extract('vue-style-loader', sourceLoader, {publicPath:'../'}) - } else { - return ['vue-style-loader', sourceLoader].join('!') - } - } - - // http://vuejs.github.io/vue-loader/configurations/extract-css.html - return { - css: generateLoaders(['css']), - postcss: generateLoaders(['css']), - less: generateLoaders(['css', 'less']), - sass: generateLoaders(['css', 'sass?indentedSyntax']), - scss: generateLoaders(['css', 'sass']), - stylus: generateLoaders(['css', 'stylus']), - styl: generateLoaders(['css', 'stylus']) - } -} - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - var output = [] - var loaders = exports.cssLoaders(options) - for (var extension in loaders) { - var loader = loaders[extension] - output.push({ - test: new RegExp('\\.' + extension + '$'), - loader: loader - }) - } - return output -} diff --git a/template/build/webpack.base.conf.js b/template/build/webpack.base.conf.js deleted file mode 100755 index fec09f5..0000000 --- a/template/build/webpack.base.conf.js +++ /dev/null @@ -1,123 +0,0 @@ -var path = require('path') -var config = require('../config/index') -var utils = require('./utils') -var projectRoot = path.resolve(__dirname, '../') -var webpack = require('webpack') - -var program = require('commander') -program - .option('-t, --target [value]', 'bundle target.') - .parse(process.argv) - -module.exports = { - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - // this causes absolute path in builds, which makes them non-distribuable on an other machine - // we may not need this in nd at all - // so let's remove it on august, 22th 2016 if no one complains - //publicPath: config.build.assetsPublicPath, - filename: '[name].js' - }, - target: program.target || {{#if electron}}'electron-renderer'{{else}}'web'{{/if}}, - resolve: { - extensions: ['', '.js', '.vue'], - fallback: [path.join(__dirname, '../node_modules')], - alias: { - 'src': path.resolve(__dirname, '../src'), - 'assets': path.resolve(__dirname, '../src/assets'), - 'components': path.resolve(__dirname, '../src/components'), - 'views': path.resolve(__dirname, '../src/views'), - 'settings': path.resolve(__dirname, '../settings'), - 'locales': path.resolve(__dirname, '../locales'), - 'data': path.resolve(__dirname, '../src/data'), - 'lib': path.resolve(__dirname, '../src/lib') - } - }, - resolveLoader: { - fallback: [path.join(__dirname, '../node_modules')] - }, - vue: { - autoprefixer: { - browsers: ['last 2 versions'] - } - }, - module: { - {{#lint}} - preLoaders: [ - { - test: /\.vue$/, - loader: 'eslint', - include: projectRoot, - exclude: /node_modules/ - }, - { - test: /\.js$/, - loader: 'eslint', - include: projectRoot, - exclude: /node_modules/ - } - ], - {{/lint}} - loaders: [ - { - test: /\.vue$/, - loader: 'vue' - }, - { - test: /\.js$/, - loader: 'babel', - include: projectRoot, - exclude: /node_modules/ - }, - { - test: /\.json$/, - loader: 'json' - }, - { - test: /\.html$/, - loader: 'vue-html' - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url', - query: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url', - query: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - }, - {{#lint}} - eslint: { - formatter: require('eslint-friendly-formatter') - }, - {{/lint}} - vue: { - loaders: utils.cssLoaders() - }, - plugins: [ new webpack.DefinePlugin({ 'global.GENTLY': false }) ], - externals: [ - (function () { - var IGNORES = [ - 'electron' - ]; - return function (context, request, callback) { - if (IGNORES.indexOf(request) >= 0) { - return callback(null, "require('" + request + "')"); - } - return callback(); - }; - })() - ] -} diff --git a/template/build/webpack.dev.conf.js b/template/build/webpack.dev.conf.js deleted file mode 100755 index 484ed64..0000000 --- a/template/build/webpack.dev.conf.js +++ /dev/null @@ -1,40 +0,0 @@ -var config = require('../config/index') -var webpack = require('webpack') -var merge = require('webpack-merge') -var utils = require('./utils') -var baseWebpackConfig = require('./webpack.base.conf') -var HtmlWebpackPlugin = require('html-webpack-plugin') - -// add hot-reload related code to entry chunks -Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) -}) - -module.exports = merge(baseWebpackConfig, { - {{#electron}} - output: { - publicPath: '/' - }, - {{/electron}} - module: { - loaders: utils.styleLoaders() - }, - // eval-source-map is faster for development - devtool: '#eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.optimize.OccurenceOrderPlugin(), - new webpack.HotModuleReplacementPlugin(), - new webpack.NoErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - favicon: 'src/assets/images/favicon.png', - filename: 'index.html', - template: 'index.html', - inject: true - }) - ] -}) diff --git a/template/build/webpack.prod.conf.js b/template/build/webpack.prod.conf.js deleted file mode 100755 index c28748f..0000000 --- a/template/build/webpack.prod.conf.js +++ /dev/null @@ -1,81 +0,0 @@ -var path = require('path') -var config = require('../config/index') -var utils = require('./utils') -var webpack = require('webpack') -var merge = require('webpack-merge') -var baseWebpackConfig = require('./webpack.base.conf') -var ExtractTextPlugin = require('extract-text-webpack-plugin') -var HtmlWebpackPlugin = require('html-webpack-plugin') -var env = config.build.env - -var webpackConfig = merge(baseWebpackConfig, { - module: { - loaders: utils.styleLoaders({ sourceMap: config.build.productionSourceMap, extract: true }) - }, - devtool: config.build.productionSourceMap ? '#source-map' : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - vue: { - loaders: utils.cssLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true - }) - }, - plugins: [ - // http://vuejs.github.io/vue-loader/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - } - }), - new webpack.optimize.OccurenceOrderPlugin(), - // extract css into its own file - new ExtractTextPlugin(utils.assetsPath('css/[name].[contenthash].css')), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - favicon: 'src/assets/images/favicon.png', - filename: config.build.index, - template: 'index.html', - inject: true, - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ) - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }) - ] -}) - -module.exports = webpackConfig diff --git a/template/config/dev.env.js b/template/config/dev.env.js deleted file mode 100755 index 0a147c5..0000000 --- a/template/config/dev.env.js +++ /dev/null @@ -1,16 +0,0 @@ -{{#if electron}} -// Do not use `webpack-merge` since there is no devDependencies in packaged app -{{else}} -var merge = require('webpack-merge') -{{/if}} -var prodEnv = require('./prod.env') - -{{#if electron}} -module.exports = Object.assign({}, prodEnv, { - NODE_ENV: '"development"' -}) -{{else}} -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}) -{{/if}} diff --git a/template/config/index.js b/template/config/index.js deleted file mode 100755 index e1656ab..0000000 --- a/template/config/index.js +++ /dev/null @@ -1,47 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path') -var package = require('../package.json') - -module.exports = { - build: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../dist/index.html'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - {{#if electron}} - assetsPublicPath: path.resolve(__dirname, '../dist'), - appRoot: path.resolve(__dirname, '../'), - version: package.version, - name: package.name, - packageDestination: path.resolve(__dirname, '../releases'), - ignoredPaths: (() => { - const paths = [ - '^/src', - '^/index.html', - '^/static', - '^/.cache', - '^/README.md', - '^/releases', - '^/.babelrc', - '^/.editorconfig', - '^/.eslint', - '^/.gitignore', - '^/build' - ] - - const regexps = paths.map((path) => { - return new RegExp(path) - }) - return regexps - })(), - {{else}} - assetsPublicPath: '/', - {{/if}} - productionSourceMap: true - }, - dev: { - env: require('./dev.env'), - port: 8080, - proxyTable: {} - } -} diff --git a/template/config/prod.env.js b/template/config/prod.env.js deleted file mode 100755 index 773d263..0000000 --- a/template/config/prod.env.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - NODE_ENV: '"production"' -} diff --git a/template/cypress.json b/template/cypress.json new file mode 100644 index 0000000..470c720 --- /dev/null +++ b/template/cypress.json @@ -0,0 +1,3 @@ +{ + "pluginsFile": "tests/e2e/plugins/index.js" +} diff --git a/template/electron/main.js b/template/electron/main.js deleted file mode 100755 index 4b27461..0000000 --- a/template/electron/main.js +++ /dev/null @@ -1,120 +0,0 @@ -const path = require('path') -const config = require('../config/index') - -const electron = require('electron') -// Module to control application life. -const app = electron.app -// Module to create native browser window. -const BrowserWindow = electron.BrowserWindow -// Modules to load settings -const program = require('commander') - -// add some command line arguments -app.commandLine.appendSwitch('--disable-pinch') -app.commandLine.appendArgument('--overscroll-history-navigation=0') -app.commandLine.appendArgument('--ignore-gpu-blacklist') -app.commandLine.appendSwitch('remote-debugging-port', '8315') -app.commandLine.appendSwitch('--disable-touch-adjustment') - -// get command line arguments -if (process.argv.length > 1) { - program - // TODO: .version('0.0.1') - .option('-s, --settings ', 'Set settings file path') - .parse(process.argv) -} - -// Settings loader -let settings = null -function loadSettings (filename) { - function load (filename) { - try { - settings = require(path.resolve(filename)) - let settingsString = JSON.stringify(settings) - process.env['SETTINGS'] = settingsString - } catch (e) { - if (e.code === 'ENOENT') { - console.log('no file or directory named:', program.settings) - } else { - console.log('Error while loading:', program.settings) - console.error(e) - } - } - } - if (filename) { - load(filename) - } - // if no config is given let the app load default configs -} - -// Keep a global reference of the window object, if you don't, the window will be closed automatically when the JavaScript object is garbage collected. -let mainWindow - -function createWindow () { - loadSettings(program.settings) - - const options = { - width: 1920, - height: 1080 - } - - if (process.env['NODE_ENV'] !== 'dev') { - // Add kiosk settings to the window - options.fullScreen = true - } else { - // Open dev tools and devtron in dev mode - require('devtron').install() - - BrowserWindow.addDevToolsExtension(path.join(__dirname, '../node_modules/devtron')) - let installExtension = require('electron-devtools-installer') - installExtension.default(installExtension.VUEJS_DEVTOOLS) - .then((name) => mainWindow.webContents.openDevTools()) - .catch((err) => console.log('An error occurred: ', err)) - } - - options.webPreferences = { - plugins: true, - directWrite: true, - webSecurity: false, - experimentalFeatures: false, - experimentalCanvasFeatures: false, - allowRunningInsecureContent: true, - allowDisplayingInsecureContent: true - } - - // Create the browser window. - mainWindow = new BrowserWindow(options) - - if (process.env['NODE_ENV'] !== 'dev') { - mainWindow.loadURL(`file://${config.build.index}`) - } else { - mainWindow.loadURL(`http://127.0.0.1:${config.dev.port}`) - } - - // Emitted when the window is closed. - mainWindow.on('closed', function () { - // Dereference the window object, usually you would store windows in an array if your app supports multi windows, this is the time when you should delete the corresponding element. - mainWindow = null - }) - - // Dirty hack to enable touch support - setTimeout(function () { - mainWindow.reload() - }, 1000) -} - -// This method will be called when Electron has finished initialization and is ready to create browser windows. -// Some APIs can only be used after this event occurs. -app.on('ready', createWindow) - -// Quit when all windows are closed. -app.on('window-all-closed', function () { - app.quit() -}) - -app.on('activate', function () { - // On OS X it's common to re-create a window in the app when the dock icon is clicked and there are no other windows open. - if (mainWindow === null) { - createWindow() - } -}) diff --git a/template/index.html b/template/index.html deleted file mode 100755 index 915e8a4..0000000 --- a/template/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - {{ name }} - - -
- - diff --git a/template/locales/en.json b/template/locales/en.json new file mode 100644 index 0000000..0387bc1 --- /dev/null +++ b/template/locales/en.json @@ -0,0 +1,21 @@ +{ + "menu": { + "home": "home", + "plant": "plant", + "garden": "garden" + }, + "home": { + "title": "Welcome", + "text": "Please read the documentation

" + }, + "plant": { + "title": "Plant", + "seedText": "seed planted'", + "seedsText": "seeds are planted" + }, + "garden": { + "title": "Garden", + "noSeed": "You don't have planted seed" + } +} + \ No newline at end of file diff --git a/template/locales/en/index.js b/template/locales/en/index.js deleted file mode 100644 index 85a90d4..0000000 --- a/template/locales/en/index.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - 'menu': { - 'home': 'home', - 'plant': 'plant', - 'garden': 'garden' - }, - 'home': { - 'title': 'Welcome', - 'text': 'Please read the documentation

' - }, - 'plant': { - 'title': 'Plant', - 'seedText': 'seed planted', - 'seedsText': 'seeds are planted' - }, - 'garden': { - 'title': 'Garden', - 'noSeed': 'You don\'t have planted seed' - } -} diff --git a/template/locales/fr.json b/template/locales/fr.json new file mode 100644 index 0000000..058c4ac --- /dev/null +++ b/template/locales/fr.json @@ -0,0 +1,21 @@ +{ + "menu": { + "home": "accueil", + "plant": "planter", + "garden": "jardin" + }, + "home": { + "title": "Bienvenue", + "text": "Merci de lire la documentation

" + }, + "plant": { + "title": "Planter", + "seedText": "graรฎne plantรฉe", + "seedsText": "graรฎnes sont plantรฉes" + }, + "garden": { + "title": "Jardin", + "noSeed": "Vous n'avez aucune graรฎne de plantรฉe" + } +} + \ No newline at end of file diff --git a/template/locales/fr/index.js b/template/locales/fr/index.js deleted file mode 100644 index 63107ad..0000000 --- a/template/locales/fr/index.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - 'menu': { - 'home': 'accueil', - 'plant': 'planter', - 'garden': 'jardin' - }, - 'home': { - 'title': 'Bienvenue', - 'text': 'Merci de lire la documentation

' - }, - 'plant': { - 'title': 'Planter', - 'seedText': 'graรฎne plantรฉe', - 'seedsText': 'graรฎnes sont plantรฉes' - }, - 'garden': { - 'title': 'Jardin', - 'noSeed': 'Vous n\'avez aucune graรฎne de plantรฉe' - } -} diff --git a/template/locales/index.js b/template/locales/index.js deleted file mode 100644 index 4dac834..0000000 --- a/template/locales/index.js +++ /dev/null @@ -1,19 +0,0 @@ -import Vue from 'vue' -import VueI18n from 'vue-i18n' -import store from 'src/store' - -Vue.use(VueI18n) -Vue.config.lang = store.state.lang - -const locales = { - fr: require('locales/fr'), - en: require('locales/en') -} - -Object.keys(locales).forEach(function (lang) { - Vue.locale(lang, locales[lang]) -}) - -store.subscribe((mutation, state) => { - Vue.config.lang = state.lang -}) diff --git a/template/package.json b/template/package.json old mode 100755 new mode 100644 index 7c3aa97..c2db53b --- a/template/package.json +++ b/template/package.json @@ -5,85 +5,33 @@ "author": "{{ author }}", "private": true, "scripts": { - "start": "npm run dev", - "dev": "node build/dev-server.js", - "build": "node build/build.js{{#electron}} && npm run package{{/electron}}", - {{#electron}} - "build:darwin": "node build/build.js && npm run package:darwin", - "build:linux": "node build/build.js && npm run package:linux", - "build:win32": "node build/build.js && npm run package:win32", - "build:all": "node build/build.js && npm run package:all", - "build:no-package": "node build/build.js", - "package": "node build/package-electron", - "package:darwin": "node build/package-electron -p darwin", - "package:linux": "node build/package-electron -p linux", - "package:win32": "node build/package-electron -p win32", - "package:all": "node build/package-electron -p all", - "electron": "export NODE_ENV=\"dev\"; ./node_modules/.bin/electron .", - {{/electron}} - "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs" - }, - {{#electron}} - "main": "electron/main.js", - {{/electron}} - "standard": { - "globals": [ - "TweenMax" - ] + "serve": "vue-cli-service serve", + "build": "vue-cli-service build", + "lint": "vue-cli-service lint", + "test:e2e": "vue-cli-service test:e2e", + "test:unit": "vue-cli-service test:unit" }, "dependencies": { - "babel-runtime": "^6.0.0", - "gsap": "^1.18.5", - "node-sass": "^3.10.0", - {{#if_eq electron false}}"opn": "^4.0.2",{{/if_eq}} - "sass-loader": "^4.0.2", - "vue": "^2.0.0", - "vue-i18n": "^5.0.0", - "vue-router": "^2.0.0", - "vuex": "^2.0.0", - "vuex-router-sync": "^3.0.0" + "vue": "^2.6.6", + "vue-class-component": "^6.0.0", + "vue-i18n": "^8.8.2", + "vue-property-decorator": "^7.0.0", + "vue-router": "^3.0.1", + "vuex": "^3.0.1" }, "devDependencies": { - "babel-core": "^6.0.0", - "babel-loader": "^6.0.0", - "babel-plugin-transform-runtime": "^6.0.0", - "babel-preset-es2015": "^6.0.0", - "babel-preset-stage-2": "^6.0.0", - "connect-history-api-fallback": "^1.1.0", - "css-loader": "^0.23.0", - "commander": "^2.9.0", - {{#electron}} - "devtron": "^1.2.1", - "electron-debug": "^1.0.1", - "electron-devtools-installer": "^2.0.0", - "electron-packager": "^7.3.0", - "electron-prebuilt": "1.3.4", - {{/electron}} - "eslint": "^2.10.2", - "eslint-friendly-formatter": "^2.0.5", - "eslint-loader": "^1.3.0", - "eslint-plugin-html": "^1.3.0", - "eslint-config-standard": "^5.1.0", - "eslint-plugin-promise": "^1.0.8", - "eslint-plugin-standard": "^1.3.2", - "eventsource-polyfill": "^0.9.6", - "express": "^4.13.3", - "extract-text-webpack-plugin": "^1.0.1", - "file-loader": "^0.8.4", - "function-bind": "^1.0.2", - "html-webpack-plugin": "^2.8.1", - "http-proxy-middleware": "^0.12.0", - "json-loader": "^0.5.4", - "ora": "^0.2.0", - "shelljs": "^0.6.0", - "url-loader": "^0.5.7", - "vue-hot-reload-api": "^1.2.0", - "vue-html-loader": "^1.0.0", - "vue-loader": "^9.0.0", - "vue-style-loader": "^1.0.0", - "webpack": "^1.12.2", - "webpack-dev-middleware": "^1.4.0", - "webpack-hot-middleware": "^2.6.0", - "webpack-merge": "^0.8.3" + "@types/chai": "^4.1.0", + "@types/mocha": "^5.2.4", + "@vue/cli-plugin-babel": "^3.4.0", + "@vue/cli-plugin-e2e-cypress": "^3.4.0", + "@vue/cli-plugin-typescript": "^3.4.0", + "@vue/cli-plugin-unit-mocha": "^3.4.0", + "@vue/cli-service": "^3.4.0", + "@vue/test-utils": "^1.0.0-beta.20", + "chai": "^4.1.2", + "node-sass": "^4.9.0", + "sass-loader": "^7.1.0", + "typescript": "^3.0.0", + "vue-template-compiler": "^2.5.21" } } diff --git a/template/postcss.config.js b/template/postcss.config.js new file mode 100644 index 0000000..961986e --- /dev/null +++ b/template/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: { + autoprefixer: {} + } +} diff --git a/template/public/favicon.ico b/template/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..9972c1eb431acee1efa54f1cefd0fa4040a26c61 GIT binary patch literal 100575 zcmeI)v1`<49LMqJNVJj?$=vCNmJ8A$Lt0F_oD$K1grb6rpp$i|U@f9k39XCZAK=#2 zNpLJWC>b0aL@Ed(Dh@4(p-XYGRi9rHQ-@4_hHLq}e&o5k--YKc_q;#f&+l{J`{hdM zmF=b5dZk~!8!P2xy}i7=zCXRAS02{;hQp2hy`{YUxL0Oo*7vV|R?1+h&g^gOPnB}- z`(Bx<*WKft8ZYJi#a_Ae_0s;yiBBf#Lr*RqSUA-Ewi`RTr#^P}YJJYJ-HQu*j$C-O z`r!KHPi1QS_D8==-kBXffAjjx^DjT&vov<#<-rU0_ucsR=fA%?diUlxzkPA*@L#`Q zd3x^HA3tn+yub7h`mq9eEAVps^yTem`@ilwUQ4Mg?ps>8w)e!3)AjapcSo(Wt`OI^ zURl{$*2cyiWp-}xWMiz(&JW%i0c$WfSp9%I{%N|$KilW<$N!(>KL6+cod)E;6dmw? z{?Gq&HK6`;*>}e{{PE}ixf)Rax$OCWHhcW>=l|Inz#o74KUV|lKbO7ym(3o3{P};j z2JpvU{?FBb`p;!A|7EksAAkOztpWV;m;ZA$p#F2&%YWJI@yDP4XKMg|{N?{#4XFQI z_VQmgd;Ia||JfSAAAk8jR|D!lm%aR#%^rXJ`G2+s@W)^N&((nX&t)(FWwXa0fBv7X z0sQfo|8q5<{&U&Of7$Hu$DjXaYXE=z<^Nm_sQ+B{@?SQ4{PE}i*&4tffB8RG1L{AQ zz5JKW9)JA#f3^nj$6x->)qwiXWiS6_v&SEQ{-3P@{PCCnb2Xs;bJ@#(+3fMhpZ{lT z0Dt`D|6C2I|6KO+Up9OE@#p{98o(ca`9D_!>OYsg{FluhfBgA>wg&LWU;fY4fcnp6 zFaKq;#~*+GpRED>@t6N|HK6`;*~@>~?D5B+|7U9efBfbDTn(uIT=w!`HhcW>=l|In zz#o74KUV|lKbO7ym(3o3{P};j2JpvU{?FBb`p;!A|7EksAAkOztpWV;m;ZA$p#F2& z%YWJI@yGuI|1UNxUnk4Cv0O*5^y_8ahNZ0RTpw%u^^*{7~^uNM1 zApgie@{j(v{z{)hgD{&$uJis<=!gHbXrN^- z|KUIM!+%;d&@z|*@E`i&KP?()nah9p5B>0;77et_t?N_Nw!~VmVzW;%zD1v6e(+~QpQ4*<{=e6% N^`oDW)=#TRy#uiGjx7KH literal 0 HcmV?d00001 diff --git a/template/public/index.html b/template/public/index.html new file mode 100644 index 0000000..37b2daf --- /dev/null +++ b/template/public/index.html @@ -0,0 +1,17 @@ + + + + + + + + {{ name }} + + + +
+ + + diff --git a/template/settings/default.json b/template/settings/default.json old mode 100644 new mode 100755 index 897bd4e..07a6ea9 --- a/template/settings/default.json +++ b/template/settings/default.json @@ -4,4 +4,4 @@ "max": 12 }, "lang": "en" -} +} \ No newline at end of file diff --git a/template/src/App.vue b/template/src/App.vue index 6e8c4ad..c59a88f 100644 --- a/template/src/App.vue +++ b/template/src/App.vue @@ -7,23 +7,19 @@ - - - + + diff --git a/template/src/components/LangSwitcher.vue b/template/src/components/LangSwitcher.vue index 1b4da55..a9e929e 100644 --- a/template/src/components/LangSwitcher.vue +++ b/template/src/components/LangSwitcher.vue @@ -5,22 +5,19 @@ - diff --git a/template/src/lib/locales/index.ts b/template/src/lib/locales/index.ts new file mode 100644 index 0000000..b870414 --- /dev/null +++ b/template/src/lib/locales/index.ts @@ -0,0 +1,24 @@ +import Vue from 'vue'; +import VueI18n from 'vue-i18n'; +import store from '@/lib/store'; + +import fr from 'locales/fr.json'; +import en from 'locales/en.json'; + +Vue.use(VueI18n); + +const locales = { + fr, + en, +}; + +const i18n = new VueI18n({ + locale: store.state.lang, + messages: locales, +}); + +store.subscribe((mutation, state) => { + i18n.locale = state.lang; +}); + +export default i18n; diff --git a/template/src/lib/router/index.ts b/template/src/lib/router/index.ts new file mode 100644 index 0000000..ec3df71 --- /dev/null +++ b/template/src/lib/router/index.ts @@ -0,0 +1,9 @@ +import Vue from 'vue'; +import Router from 'vue-router'; +import { routes } from './routes'; + +Vue.use(Router); + +export default new Router({ + routes, +}); diff --git a/template/src/lib/router/routes.ts b/template/src/lib/router/routes.ts new file mode 100644 index 0000000..296bddd --- /dev/null +++ b/template/src/lib/router/routes.ts @@ -0,0 +1,25 @@ +import Home from '@/views/Home.vue'; +import Plant from '@/views/Plant.vue'; +import Garden from '@/views/Garden.vue'; + +export const routes = [ + { + path: '/', + name: 'Home', + component: Home, + }, + { + path: '/home', + redirect: '/', + }, + { + path: '/plant', + name: 'Plant', + component: Plant, + }, + { + path: '/garden', + name: 'Garden', + component: Garden, + }, +]; diff --git a/template/src/lib/settings.js b/template/src/lib/settings.js deleted file mode 100755 index 473c461..0000000 --- a/template/src/lib/settings.js +++ /dev/null @@ -1,52 +0,0 @@ -{{#electron}} -// Try to load electron remote -var remote = null -try { - remote = require('electron').remote -} catch (e) { - console.warn('app is not running in electron, loading default config') -} - -{{/electron}} -// List of settings to use -let files = [] -try { - // Load default settings - files.push(require('./../../settings/default.json')) - - // Load more settings if you need - // files.push(require('./../../settings/' + process.env.project + '.json')) - {{#electron}} - - // If used in electron, load settings given as arg => ./myapp -- -s mySettings.json - if (remote && remote.process.env['SETTINGS']) { - console.log('loading custom settings') - files.push(JSON.parse(remote.process.env['SETTINGS'])) - } - {{/electron}} -} catch (e) { - console.warn('Unable to load settings', e) -} - -// Override function -function override (target, object) { - for (var key of Object.keys(object)) { - if (target[key] && typeof object[key] === 'object') { - override(target[key], object[key]) - } else { - target[key] = object[key] - } - } -} - -// Load settings -let settings = {} -for (let f of files) { - override(settings, f) -} - -if (process.env['NODE_ENV'] === 'development') { - console.log(settings) -} - -module.exports = settings diff --git a/template/src/lib/store/index.ts b/template/src/lib/store/index.ts new file mode 100644 index 0000000..629a241 --- /dev/null +++ b/template/src/lib/store/index.ts @@ -0,0 +1,40 @@ +import Vue from 'vue'; +import Vuex from 'vuex'; +import settings from 'settings/default.json'; + +Vue.use(Vuex); + +const state = { + seed: settings.seed.default, + lang: settings.lang, +}; + +const mutations = { + PLANT(state: any, amount: number) { + state.seed = state.seed - amount; + }, + PULL_UP(state: any, amount: number) { + state.seed = state.seed + amount; + }, + TRANSLATE(state: any, lang: string) { + state.lang = lang; + }, +}; + +const actions = { + plant({commit}: any) { + commit('PLANT', 1); + }, + pullUp({commit}: any) { + commit('PULL_UP', 1); + }, + translate({commit}: any, lang: string) { + commit('TRANSLATE', lang); + }, +}; + +export default new Vuex.Store({ + state, + mutations, + actions, +}); diff --git a/template/src/main.js b/template/src/main.js deleted file mode 100644 index f86f58d..0000000 --- a/template/src/main.js +++ /dev/null @@ -1,22 +0,0 @@ -import Vue from 'vue' -import App from 'src/App' - -// Import favicon -import 'assets/images/favicon.png' - -// Global vue stuffs -import 'gsap' -import 'locales/index' - -// Routing -import router from 'src/router' - -// Store -import store from 'src/store' - -new Vue({ - el: '#app', - router: router, - store: store, - render: h => h(App) -}) diff --git a/template/src/main.ts b/template/src/main.ts new file mode 100644 index 0000000..06ff386 --- /dev/null +++ b/template/src/main.ts @@ -0,0 +1,14 @@ +import Vue from 'vue'; +import App from './App.vue'; +import router from '@/lib/router'; +import store from '@/lib/store'; +import i18n from '@/lib/locales'; + +Vue.config.productionTip = false; + +new Vue({ + router, + store, + i18n, + render: (h) => h(App), +}).$mount('#app'); diff --git a/template/src/router/index.js b/template/src/router/index.js deleted file mode 100644 index 579b6a6..0000000 --- a/template/src/router/index.js +++ /dev/null @@ -1,10 +0,0 @@ -import Vue from 'vue' -import VueRouter from 'vue-router' -import routes from './routes' - -Vue.use(VueRouter) - -export default new VueRouter({ - history: false, - routes: routes -}) diff --git a/template/src/router/routes.js b/template/src/router/routes.js deleted file mode 100644 index 4294646..0000000 --- a/template/src/router/routes.js +++ /dev/null @@ -1,22 +0,0 @@ -import Home from 'views/Home' -import Plant from 'views/Plant' -import Garden from 'views/Garden' - -module.exports = [ - { - path: '/home', - name: 'Home', - component: Home, - alias: '/' - }, - { - path: '/plant', - name: 'Plant', - component: Plant - }, - { - path: '/garden', - name: 'Garden', - component: Garden - } -] diff --git a/template/src/shims-json.d.ts b/template/src/shims-json.d.ts new file mode 100644 index 0000000..bbab69d --- /dev/null +++ b/template/src/shims-json.d.ts @@ -0,0 +1,4 @@ +declare module '*.json' { + const value: any; + export default value; +} diff --git a/template/src/shims-tsx.d.ts b/template/src/shims-tsx.d.ts new file mode 100644 index 0000000..3b88b58 --- /dev/null +++ b/template/src/shims-tsx.d.ts @@ -0,0 +1,13 @@ +import Vue, { VNode } from 'vue'; + +declare global { + namespace JSX { + // tslint:disable no-empty-interface + interface Element extends VNode {} + // tslint:disable no-empty-interface + interface ElementClass extends Vue {} + interface IntrinsicElements { + [elem: string]: any; + } + } +} diff --git a/template/src/shims-vue.d.ts b/template/src/shims-vue.d.ts new file mode 100644 index 0000000..8f6f410 --- /dev/null +++ b/template/src/shims-vue.d.ts @@ -0,0 +1,4 @@ +declare module '*.vue' { + import Vue from 'vue'; + export default Vue; +} diff --git a/template/src/store/index.js b/template/src/store/index.js deleted file mode 100644 index 7074b16..0000000 --- a/template/src/store/index.js +++ /dev/null @@ -1,43 +0,0 @@ -import Vue from 'vue' -import Vuex from 'vuex' - -import settings from 'lib/settings' - -Vue.use(Vuex) - -const state = { - seed: settings.seed.default, - lang: settings.lang -} - -const mutations = { - PLANT (state, amount) { - state.seed = state.seed - amount - }, - PULL_UP (state, amount) { - state.seed = state.seed + amount - }, - TRANSLATE (state, lang) { - state.lang = lang - } -} - -const actions = { - plant({commit}) { - commit('PLANT', 1) - }, - pullUp({commit}) { - commit('PULL_UP', 1) - }, - translate({commit}, lang) { - commit('TRANSLATE', lang) - } -} - -const store = new Vuex.Store({ - state, - mutations, - actions -}) - -export default store diff --git a/template/src/views/Garden.vue b/template/src/views/Garden.vue index 9d77374..2a21466 100644 --- a/template/src/views/Garden.vue +++ b/template/src/views/Garden.vue @@ -1,19 +1,24 @@ - diff --git a/template/src/views/Plant.vue b/template/src/views/Plant.vue index 5fab42e..1822d3d 100644 --- a/template/src/views/Plant.vue +++ b/template/src/views/Plant.vue @@ -7,30 +7,27 @@ - + + diff --git a/docs/.vuepress/dist/assets/css/0.styles.65ac630d.css b/docs/.vuepress/dist/assets/css/0.styles.65ac630d.css new file mode 100644 index 0000000..8616f6d --- /dev/null +++ b/docs/.vuepress/dist/assets/css/0.styles.65ac630d.css @@ -0,0 +1 @@ +.home{padding:3.6rem 2rem 0;max-width:960px;margin:0 auto}.home .hero{text-align:center}.home .hero img{max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#6a8bad}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#3eaf7c;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #389d70}.home .hero .action-button:hover{background-color:#4abf8a}.home .features{border-top:1px solid #eaecef;padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:#3a5169}.home .feature p{color:#4e6e8e}.home .footer{padding:2.5rem;border-top:1px solid #eaecef;text-align:center;color:#4e6e8e}@media (max-width:719px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.badge[data-v-099ab69c]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff;margin-right:5px;background-color:#42b983}.badge.middle[data-v-099ab69c]{vertical-align:middle}.badge.top[data-v-099ab69c]{vertical-align:top}.badge.green[data-v-099ab69c],.badge.tip[data-v-099ab69c]{background-color:#42b983}.badge.error[data-v-099ab69c]{background-color:#da5961}.badge.warn[data-v-099ab69c],.badge.warning[data-v-099ab69c],.badge.yellow[data-v-099ab69c]{background-color:#e7c000}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;color:#4e6e8e;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all .2s ease;background:#fff url(/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#3eaf7c}.search-box .suggestions{background:#fff;width:20rem;position:absolute;top:1.5rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:#5d82a6}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:#f3f4f5}.search-box .suggestion.focused a{color:#3eaf7c}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title{display:block}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#3eaf7c}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #3eaf7c;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper .dropdown-title .arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #ccc;border-bottom:0}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid #ddd;border-bottom-color:#ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#3eaf7c}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#2c3e50}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #46bd87}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem;position:relative}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#2c3e50;position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}.navbar .links .nav-links{flex:1}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}}.page-edit,.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit,.page-nav{padding:2rem}}@media (max-width:419px){.page-edit,.page-nav{padding:1.5rem}}.page{padding-bottom:2rem}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#4e6e8e;margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#4e6e8e}.page-edit .last-updated .time{font-weight:400;color:#aaa}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.sidebar-button{display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.sidebar-group:not(.first){margin-top:1em}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading{cursor:auto;color:inherit}.sidebar-heading{color:#999;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:0 1.5rem;margin-top:0;margin-bottom:.5rem}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading:.open .arrow{top:-.18em}.sidebar-group-items{transition:height .1s ease-out;overflow:hidden}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem 0}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar .sidebar-links{padding:1.5rem 0}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar .sidebar-links{padding:1rem 0}}.sw-update-popup{position:fixed;right:1em;bottom:1em;padding:1em;border:1px solid #3eaf7c;border-radius:3px;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.5);text-align:center}.sw-update-popup button{margin-top:.5em;padding:.25em 2em}.sw-update-popup-enter-active,.sw-update-popup-leave-active{transition:opacity .3s,transform .3s}.sw-update-popup-enter,.sw-update-popup-leave-to{opacity:0;transform:translateY(50%) scale(.5)}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;tab-size:4;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}#nprogress{pointer-events:none}#nprogress .bar{background:#3eaf7c;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #3eaf7c,0 0 5px #3eaf7c;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#3eaf7c;border-left-color:#3eaf7c;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.content code{color:#476582;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.content pre,.content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.content pre[class*=language-] code,.content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#282c34;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number,div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#282c34}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}.custom-block .custom-block-title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#2c3e50}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#2c3e50}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.content:not(.custom){padding:2rem}}@media (max-width:419px){.content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#2c3e50}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:3.6rem;background-color:#fff;box-sizing:border-box;border-bottom:1px solid #eaecef}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:15px;background-color:#fff;width:20rem;position:fixed;z-index:10;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #eaecef;overflow-y:auto}.content:not(.custom)>:first-child{margin-top:3.6rem}.content:not(.custom) a:hover{text-decoration:underline}.content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.content:not(.custom) img{max-width:100%}.content.custom{padding:0;margin:0}.content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#3eaf7c}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1.2rem;color:#999;border-left:.25rem solid #dfe2e5;margin-left:0;padding-left:1rem}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.content:not(.custom)>h1,.content:not(.custom)>h2,.content:not(.custom)>h3,.content:not(.custom)>h4,.content:not(.custom)>h5,.content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.content:not(.custom)>h1:first-child,.content:not(.custom)>h2:first-child,.content:not(.custom)>h3:first-child,.content:not(.custom)>h4:first-child,.content:not(.custom)>h5:first-child,.content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.content:not(.custom)>h1:first-child+.custom-block,.content:not(.custom)>h1:first-child+p,.content:not(.custom)>h1:first-child+pre,.content:not(.custom)>h2:first-child+.custom-block,.content:not(.custom)>h2:first-child+p,.content:not(.custom)>h2:first-child+pre,.content:not(.custom)>h3:first-child+.custom-block,.content:not(.custom)>h3:first-child+p,.content:not(.custom)>h3:first-child+pre,.content:not(.custom)>h4:first-child+.custom-block,.content:not(.custom)>h4:first-child+p,.content:not(.custom)>h4:first-child+pre,.content:not(.custom)>h5:first-child+.custom-block,.content:not(.custom)>h5:first-child+p,.content:not(.custom)>h5:first-child+pre,.content:not(.custom)>h6:first-child+.custom-block,.content:not(.custom)>h6:first-child+p,.content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #eaecef}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid #eaecef}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5;padding:.6em 1em}.custom-layout{padding-top:3.6rem}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}.theme-container.no-navbar .custom-layout{padding-top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.icon.outbound{color:#aaa;display:inline-block}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-weight:400;display:inline-block;color:#2c3e50;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#3eaf7c}a.sidebar-link.active{font-weight:600;color:#3eaf7c;border-left-color:#3eaf7c}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500} \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/img/search.83621669.svg b/docs/.vuepress/dist/assets/img/search.83621669.svg new file mode 100644 index 0000000..03d8391 --- /dev/null +++ b/docs/.vuepress/dist/assets/img/search.83621669.svg @@ -0,0 +1 @@ + diff --git a/docs/.vuepress/dist/assets/js/2.7974f97d.js b/docs/.vuepress/dist/assets/js/2.7974f97d.js new file mode 100644 index 0000000..5eb5eae --- /dev/null +++ b/docs/.vuepress/dist/assets/js/2.7974f97d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{165:function(t,n,e){},166:function(t,n,e){"use strict";var a=e(165);e.n(a).a},168:function(t,n,e){"use strict";e.r(n);var a={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,n){var e=n.props,a=n.slots;return t("span",{class:["badge",e.type,e.vertical]},e.text||a().default)}},r=(e(166),e(0)),i=Object(r.a)(a,void 0,void 0,!1,null,"099ab69c",null);n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/3.5ee90f85.js b/docs/.vuepress/dist/assets/js/3.5ee90f85.js new file mode 100644 index 0000000..6357b2c --- /dev/null +++ b/docs/.vuepress/dist/assets/js/3.5ee90f85.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{169:function(t,n,e){"use strict";e.r(n);var s=e(0),c=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);n.default=c.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/4.fdd5b91a.js b/docs/.vuepress/dist/assets/js/4.fdd5b91a.js new file mode 100644 index 0000000..1b0dd78 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/4.fdd5b91a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{170:function(e,t,r){"use strict";r.r(t);var n=r(0),a=Object(n.a)({},function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"content"},[e._m(0),e._v(" "),r("p",[e._v("This vue-cli 3 template is targeted towards single page applications with "),r("a",{attrs:{href:"http://vuex.vuejs.org/en/intro.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("state management"),r("OutboundLink")],1),e._v(". In order to fully enjoy working with this template, please read these documentations :")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://babeljs.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Babel"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.typescriptlang.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("TypeScript"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"http://vuejs.org/guide/",target:"_blank",rel:"noopener noreferrer"}},[e._v("vue"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://cli.vuejs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("vue-cli"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("router-link",{attrs:{to:"./router.vuejs.org/en/index.html"}},[e._v("vue-router")])],1),e._v(" "),r("li",[r("a",{attrs:{href:"http://vuex.vuejs.org/en/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("vuex"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/kazupon/vue-i18n",target:"_blank",rel:"noopener noreferrer"}},[e._v("vue-i18n"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/feross/standard",target:"_blank",rel:"noopener noreferrer"}},[e._v("standard style"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://sass-lang.com/dart-sass",target:"_blank",rel:"noopener noreferrer"}},[e._v("sass"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://palantir.github.io/tslint/",target:"_blank",rel:"noopener noreferrer"}},[e._v("TSLint"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://mochajs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Mocha"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.cypress.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cypress"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"http://nvie.com/posts/a-successful-git-branching-model/",target:"_blank",rel:"noopener noreferrer"}},[e._v("successfull git branching model"),r("OutboundLink")],1)])])])},[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",{attrs:{id:"introduction"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#introduction","aria-hidden":"true"}},[this._v("#")]),this._v(" Introduction")])}],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/5.d4a364c2.js b/docs/.vuepress/dist/assets/js/5.d4a364c2.js new file mode 100644 index 0000000..92c61ac --- /dev/null +++ b/docs/.vuepress/dist/assets/js/5.d4a364c2.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{174:function(t,a,s){"use strict";s.r(a);var e=s(0),n=Object(e.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"content"},[s("h1",{attrs:{id:"how-to-use-it"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#how-to-use-it","aria-hidden":"true"}},[t._v("#")]),t._v(" How to use it ?")]),t._v(" "),s("h2",{attrs:{id:"development"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#development","aria-hidden":"true"}},[t._v("#")]),t._v(" Development")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("$ yarn run serve "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# compiles and hot-reloads for development")]),t._v("\n")])])]),s("h2",{attrs:{id:"production"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#production","aria-hidden":"true"}},[t._v("#")]),t._v(" Production")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("$ yarn run build "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# compiles and minifies for production")]),t._v("\n")])])]),s("h2",{attrs:{id:"testing"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#testing","aria-hidden":"true"}},[t._v("#")]),t._v(" Testing")]),t._v(" "),s("p",[t._v("Run your tests")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("$ yarn run "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("test")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# run your tests")]),t._v("\n$ yarn run test:e2e "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# run your end-to-end tests")]),t._v("\n$ yarn run test:unit "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# run your unit tests")]),t._v("\n")])])]),s("h2",{attrs:{id:"lint"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#lint","aria-hidden":"true"}},[t._v("#")]),t._v(" Lint")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("$ yarn run lint "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# lints and fixes files")]),t._v("\n")])])]),s("h2",{attrs:{id:"documentation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#documentation","aria-hidden":"true"}},[t._v("#")]),t._v(" Documentation")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("$ yarn run docs:dev "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# run server for editing your vuepress documentation")]),t._v("\n$ yarn run docs:build "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# build your vuepress documentation")]),t._v("\n$ yarn run docs:deploy "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# deploys vuepress documentation ")]),t._v("\n")])])])])}],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/6.279545f0.js b/docs/.vuepress/dist/assets/js/6.279545f0.js new file mode 100644 index 0000000..373d8be --- /dev/null +++ b/docs/.vuepress/dist/assets/js/6.279545f0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{173:function(t,e,s){"use strict";s.r(e);var a=s(0),n=Object(a.a)({},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"content"},[t._m(0),t._v(" "),s("div",{staticClass:"tip custom-block"},[s("p",{staticClass:"custom-block-title"},[t._v("Node Version Requirement")]),t._v(" "),s("p",[t._v("Vue CLI requires "),s("a",{attrs:{href:"https://nodejs.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Node.js"),s("OutboundLink")],1),t._v(" version 8.9 or above (8.11.0+ recommended). You can manage multiple versions of Node on the same machine with "),s("a",{attrs:{href:"https://github.com/creationix/nvm",target:"_blank",rel:"noopener noreferrer"}},[t._v("nvm"),s("OutboundLink")],1),t._v(" or "),s("a",{attrs:{href:"https://github.com/coreybutler/nvm-windows",target:"_blank",rel:"noopener noreferrer"}},[t._v("nvm-windows"),s("OutboundLink")],1),t._v(".")])]),t._v(" "),t._m(1),t._v(" "),s("p",[t._v("First, you need to install vue-cli package :")]),t._v(" "),t._m(2),s("p",[t._v("You can check you have the right version (3.x) with this command:")]),t._v(" "),t._m(3),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._m(7),t._v(" "),t._m(8)])},[function(){var t=this.$createElement,e=this._self._c||t;return e("h1",{attrs:{id:"installation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#installation","aria-hidden":"true"}},[this._v("#")]),this._v(" Installation")])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"vue-cli"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#vue-cli","aria-hidden":"true"}},[this._v("#")]),this._v(" Vue-cli")])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[this._v("npm")]),this._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[this._v("install")]),this._v(" -g @vue/cli\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[this._v("# OR")]),this._v("\nyarn global add @vue/cli\n")])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[this._v("vue --version\n")])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"environmment-settings"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#environmment-settings","aria-hidden":"true"}},[this._v("#")]),this._v(" Environmment settings")])},function(){var t=this.$createElement,e=this._self._c||t;return e("p",[this._v("Create "),e("em",[this._v(".env")]),this._v(" file by running :")])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[this._v("$ "),e("span",{pre:!0,attrs:{class:"token function"}},[this._v("cp")]),this._v(" .env.dist .env\n")])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"install-dependencies"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#install-dependencies","aria-hidden":"true"}},[this._v("#")]),this._v(" Install dependencies")])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[this._v("$ yarn "),e("span",{pre:!0,attrs:{class:"token function"}},[this._v("install")]),this._v("\n")])])])}],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/7.fb768c3a.js b/docs/.vuepress/dist/assets/js/7.fb768c3a.js new file mode 100644 index 0000000..aaba8bb --- /dev/null +++ b/docs/.vuepress/dist/assets/js/7.fb768c3a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{172:function(t,e,s){"use strict";s.r(e);var n=s(0),i=Object(n.a)({},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"content"},[t._m(0),t._v(" "),s("p",[t._v("Please read "),s("a",{attrs:{href:"https://vuejs.org/v2/style-guide/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Vue.js style guide"),s("OutboundLink")],1),t._v(".")]),t._v(" "),t._m(1),t._v(" "),t._m(2),t._m(3),t._v(" "),s("p",[t._v("Setting your environnements variables using "),s("a",{attrs:{href:"https://github.com/motdotla/dotenv",target:"_blank",rel:"noopener noreferrer"}},[t._v("dotenv"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("p",[t._v("If you have to set protected data (like API token), or custom keys depending environnements, using these settings.")]),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),s("p",[t._v("It's simple configuration, example, default languague, default theme, etc.")]),t._v(" "),t._m(7),t._v(" "),t._m(8)])},[function(){var t=this.$createElement,e=this._self._c||t;return e("h1",{attrs:{id:"project-structure"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#project-structure","aria-hidden":"true"}},[this._v("#")]),this._v(" Project structure")])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"tree"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#tree","aria-hidden":"true"}},[this._v("#")]),this._v(" Tree")])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[this._v(".\nโ”œโ”€โ”€ locales/ # translations JSON files\nโ”‚ โ””โ”€โ”€ ...\nโ”œโ”€โ”€ public/ # public folder\nโ”‚ย ย  โ”œโ”€โ”€ favicon.ico\nโ”‚ โ””โ”€โ”€ index.html \nโ”œโ”€โ”€ settings/ # application settings\nโ”‚ย ย  โ””โ”€โ”€ default.json\nโ”œโ”€โ”€ src/\nโ”‚ย ย  โ”œโ”€โ”€ assets/ # assets (images, styles, ...)\nโ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...\nโ”‚ย ย  โ”œโ”€โ”€ components/ # ui components\nโ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...\nโ”‚ย ย  โ”œโ”€โ”€ data/ # app datas\nโ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...\nโ”‚ย ย  โ”œโ”€โ”€ lib/\nโ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ locales/ # i18n from locales JSON files\nโ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ index.js\nโ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ router/ # router with routes\nโ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index.js\nโ”‚ย ย  โ”‚ย ย  โ”‚ย  โ””โ”€โ”€ routes.js\nโ”‚ โ”‚ โ””โ”€โ”€ store / # store (with state, mutations and actions)\nโ”‚ย ย  โ”‚ย ย  ย ย  โ””โ”€โ”€ index.js\nโ”‚ย ย  โ”œโ”€โ”€ transitions/ # vue transitions\nโ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...\nโ”‚ย ย  โ”œโ”€โ”€ utils/ # somes utils js files\nโ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...\nโ”‚ย ย  โ”œโ”€โ”€ views/ # views components\nโ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...\nโ”‚ย ย  โ”œโ”€โ”€ main.js # app entry file\nโ”‚ย ย  โ”œโ”€โ”€ App.vue # main app component\nโ”œโ”€โ”€ tests/ # unit and e2e tests\nโ”‚ โ””โ”€โ”€ ...\nโ”œโ”€โ”€ .env.dist # environnements settings\nโ””โ”€โ”€ package.json # build scripts and dependencies\n")])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"environments-settings"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#environments-settings","aria-hidden":"true"}},[this._v("#")]),this._v(" Environments settings")])},function(){var t=this.$createElement,e=this._self._c||t;return e("p",[this._v("For getting variables from Vue components, prefix your variables by "),e("code",[this._v("VUE_APP_")]),this._v(" ("),e("em",[this._v("example "),e("code",[this._v("VUE_APP_SEED_KEY")])]),this._v(").")])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"application-settings"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#application-settings","aria-hidden":"true"}},[this._v("#")]),this._v(" Application settings")])},function(){var t=this.$createElement,e=this._self._c||t;return e("p",[this._v("A "),e("code",[this._v("settings")]),this._v(" folder on root project for easily updating your project configuration.")])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"locales"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#locales","aria-hidden":"true"}},[this._v("#")]),this._v(" Locales")])},function(){var t=this.$createElement,e=this._self._c||t;return e("p",[this._v("A "),e("code",[this._v("locales")]),this._v(" folder on root project, regrouping all translations in differents languages in JSON format.")])}],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/8.41d11667.js b/docs/.vuepress/dist/assets/js/8.41d11667.js new file mode 100644 index 0000000..4b894d7 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/8.41d11667.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{171:function(t,e,s){"use strict";s.r(e);var r=s(0),a=Object(r.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"content"},[e("h1",{attrs:{id:"why"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#why","aria-hidden":"true"}},[this._v("#")]),this._v(" Why ?")]),this._v(" "),e("p",[this._v("Vue-cli plugin allows to create a project with different features (Babel, TypeScript, linter, formatter, unit and E2E testing, etc) but with a default structure.")]),this._v(" "),e("p",[this._v("Seed proposes a project stucture adapted for developpers and others.")])])}],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/9.6689b887.js b/docs/.vuepress/dist/assets/js/9.6689b887.js new file mode 100644 index 0000000..43672f7 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/9.6689b887.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{167:function(n,w,o){}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/app.b0bd413c.js b/docs/.vuepress/dist/assets/js/app.b0bd413c.js new file mode 100644 index 0000000..a865f41 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/app.b0bd413c.js @@ -0,0 +1,8 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],u=e[1],c=e[2],f=0,p=[];f0?o(r(t),9007199254740991):0}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){for(var r=n(20),o=n(28),i=n(11),a=n(3),s=n(10),u=n(18),c=n(1),l=c("iterator"),f=c("toStringTag"),p=u.Array,d={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},h=o(d),v=0;v=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e,n){"use strict";var r=n(6);t.exports=function(t,e){return!!t&&r(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,n){"use strict";var r=n(2),o=n(32)(3);r(r.P+r.F*!n(21)([].some,!0),"Array",{some:function(t){return o(this,t,arguments[1])}})},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(8).f,o=n(14),i=n(1)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(2);r(r.S+r.F,"Object",{assign:n(104)})},function(t,e,n){var r=n(80),o=n(63);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(61),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(19),o=n(28);n(83)("keys",function(){return function(t){return o(r(t))}})},function(t,e,n){"use strict";var r=n(2),o=n(32)(0),i=n(21)([].forEach,!0);r(r.P+r.F*!i,"Array",{forEach:function(t){return o(this,t,arguments[1])}})},function(t,e,n){var r=n(9),o=n(61),i=n(19),a=n(15),s=n(112);t.exports=function(t,e){var n=1==t,u=2==t,c=3==t,l=4==t,f=6==t,p=5==t||f,d=e||s;return function(e,s,h){for(var v,m,g=i(e),y=o(g),b=r(s,h,3),_=a(y.length),x=0,w=n?d(e,_):u?d(e,0):void 0;_>x;x++)if((p||x in y)&&(m=b(v=y[x],x,g),t))if(n)w[x]=m;else if(m)switch(t){case 3:return!0;case 5:return v;case 6:return x;case 2:w.push(v)}else if(l)return!1;return f?-1:c||l?l:w}}},function(t,e,n){"use strict";var r=n(2),o=n(32)(2);r(r.P+r.F*!n(21)([].filter,!0),"Array",{filter:function(t){return o(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(2),o=n(32)(1);r(r.P+r.F*!n(21)([].map,!0),"Array",{map:function(t){return o(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(5),o=n(19),i=n(15),a=n(25),s=n(68),u=n(69),c=Math.max,l=Math.min,f=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,d=/\$([$&`']|\d\d?)/g;n(71)("replace",2,function(t,e,n,h){return[function(r,o){var i=t(this),a=null==r?void 0:r[e];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},function(t,e){var o=h(n,t,this,e);if(o.done)return o.value;var f=r(t),p=String(this),d="function"==typeof e;d||(e=String(e));var m=f.global;if(m){var g=f.unicode;f.lastIndex=0}for(var y=[];;){var b=u(f,p);if(null===b)break;if(y.push(b),!m)break;""===String(b[0])&&(f.lastIndex=s(p,i(f.lastIndex),g))}for(var _,x="",w=0,k=0;k=w&&(x+=p.slice(w,$)+j,w=$+C.length)}return x+p.slice(w)}];function v(t,e,r,i,a,s){var u=r+t.length,c=i.length,l=d;return void 0!==a&&(a=o(a),l=p),n.call(s,l,function(n,o){var s;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"'":return e.slice(u);case"<":s=a[o.slice(1,-1)];break;default:var l=+o;if(0===l)return n;if(l>c){var p=f(l/10);return 0===p?n:p<=c?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):n}s=i[l-1]}return void 0===s?"":s})}})},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){var r,o; +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */void 0===(o="function"==typeof(r=function(){var t,e,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(t,e,n){return tn?n:t}function i(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var u=n.render(!e),c=u.querySelector(r.barSelector),l=r.speed,f=r.easing;return u.offsetWidth,a(function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"}).transition="all "+e+"ms "+n,o}(t,l,f)),1===t?(s(u,{transition:"none",opacity:1}),u.offsetWidth,setTimeout(function(){s(u,{transition:"all "+l+"ms linear",opacity:0}),setTimeout(function(){n.remove(),e()},l)},l)):setTimeout(e,l)}),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout(function(){n.status&&(n.trickle(),t())},r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always(function(){0==--e?(t=0,n.done()):n.set((t-e)/t)}),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,a=e.querySelector(r.barSelector),u=t?"-100":i(n.status||0),l=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+u+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&p(o),l!=document.body&&c(l,"nprogress-custom-parent"),l.appendChild(e),e},n.remove=function(){l(document.documentElement,"nprogress-busy"),l(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&p(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var a=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),s=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(t,e){return e.toUpperCase()}),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,i=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+i)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,i=arguments;if(2==i.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,i[1],i[2])}}();function u(t,e){var n="string"==typeof t?t:f(t);return n.indexOf(" "+e+" ")>=0}function c(t,e){var n=f(t),r=n+e;u(n,e)||(t.className=r.substring(1))}function l(t,e){var n,r=f(t);u(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function f(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function p(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e){t.exports=!1},function(t,e,n){var r=n(12),o=n(1)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){var r=n(13),o=n(3),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(52)?"pure":"global",copyright:"ยฉ 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e,n){var r=n(4),o=n(3).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var r=n(9),o=n(96),i=n(97),a=n(5),s=n(15),u=n(98),c={},l={};(e=t.exports=function(t,e,n,f,p){var d,h,v,m,g=p?function(){return t}:u(t),y=r(n,f,e?2:1),b=0;if("function"!=typeof g)throw TypeError(t+" is not iterable!");if(i(g)){for(d=s(t.length);d>b;b++)if((m=e?y(a(h=t[b])[0],h[1]):y(t[b]))===c||m===l)return m}else for(v=g.call(t);!(h=v.next()).done;)if((m=o(v,y,h.value,e))===c||m===l)return m}).BREAK=c,e.RETURN=l},function(t,e,n){var r=n(11);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},function(t,e,n){"use strict";var r=n(3),o=n(8),i=n(7),a=n(1)("species");t.exports=function(t){var e=r[t];i&&e&&!e[a]&&o.f(e,a,{configurable:!0,get:function(){return this}})}},function(t,e,n){var r=n(12);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(54)("keys"),o=n(24);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(24)("meta"),o=n(4),i=n(14),a=n(8).f,s=0,u=Object.isExtensible||function(){return!0},c=!n(6)(function(){return u(Object.preventExtensions({}))}),l=function(t){a(t,r,{value:{i:"O"+ ++s,w:{}}})},f=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!u(t))return"F";if(!e)return"E";l(t)}return t[r].i},getWeak:function(t,e){if(!i(t,r)){if(!u(t))return!0;if(!e)return!1;l(t)}return t[r].w},onFreeze:function(t){return c&&f.NEED&&u(t)&&!i(t,r)&&l(t),t}}},function(t,e,n){"use strict";var r=n(52),o=n(2),i=n(11),a=n(10),s=n(18),u=n(109),c=n(26),l=n(111),f=n(1)("iterator"),p=!([].keys&&"next"in[].keys()),d=function(){return this};t.exports=function(t,e,n,h,v,m,g){u(n,e,h);var y,b,_,x=function(t){if(!p&&t in $)return $[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},w=e+" Iterator",k="values"==v,C=!1,$=t.prototype,S=$[f]||$["@@iterator"]||v&&$[v],O=S||x(v),E=v?k?x("entries"):O:void 0,A="Array"==e&&$.entries||S;if(A&&(_=l(A.call(new t)))!==Object.prototype&&_.next&&(c(_,w,!0),r||"function"==typeof _[f]||a(_,f,d)),k&&S&&"values"!==S.name&&(C=!0,O=function(){return S.call(this)}),r&&!g||!p&&!C&&$[f]||a($,f,O),s[e]=O,s[w]=d,v)if(y={values:k?O:x("values"),keys:m?O:x("keys"),entries:E},g)for(b in y)b in $||i($,b,y[b]);else o(o.P+o.F*(p||C),e,y);return y}},function(t,e,n){var r=n(8).f,o=Function.prototype,i=/^\s*function ([^ (]*)/;"name"in o||n(7)&&r(o,"name",{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},function(t,e,n){"use strict";var r=n(2),o=n(81)(!1),i=[].indexOf,a=!!i&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(a||!n(21)(i)),"Array",{indexOf:function(t){return a?i.apply(this,arguments)||0:o(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(88)(!0);t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},function(t,e,n){"use strict";var r=n(53),o=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},function(t,e,n){"use strict";var r,o,i=n(89),a=RegExp.prototype.exec,s=String.prototype.replace,u=a,c=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),l=void 0!==/()??/.exec("")[1];(c||l)&&(u=function(t){var e,n,r,o,u=this;return l&&(n=new RegExp("^"+u.source+"$(?!\\s)",i.call(u))),c&&(e=u.lastIndex),r=a.call(u,t),c&&r&&(u.lastIndex=u.global?r.index+r[0].length:e),l&&r&&r.length>1&&s.call(r[0],n,function(){for(o=1;o")}),f=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=s(t),d=!i(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)}),h=d?!i(function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[c]=function(){return n}),n[p](""),!e}):void 0;if(!d||!h||"replace"===t&&!l||"split"===t&&!f){var v=/./[p],m=n(a,p,""[t],function(t,e,n,r,o){return e.exec===u?d&&!o?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),g=m[0],y=m[1];r(String.prototype,t,g),o(RegExp.prototype,p,2==e?function(t,e){return y.call(t,this,e)}:function(t){return y.call(t,this)})}}},function(t,e,n){"use strict";var r,o,i,a,s=n(52),u=n(3),c=n(9),l=n(53),f=n(2),p=n(4),d=n(23),h=n(57),v=n(58),m=n(75),g=n(76).set,y=n(100)(),b=n(78),_=n(101),x=n(102),w=n(103),k=u.TypeError,C=u.process,$=C&&C.versions,S=$&&$.v8||"",O=u.Promise,E="process"==l(C),A=function(){},j=o=b.f,T=!!function(){try{var t=O.resolve(1),e=(t.constructor={})[n(1)("species")]=function(t){t(A,A)};return(E||"function"==typeof PromiseRejectionEvent)&&t.then(A)instanceof e&&0!==S.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(t){}}(),L=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},P=function(t,e){if(!t._n){t._n=!0;var n=t._c;y(function(){for(var r=t._v,o=1==t._s,i=0,a=function(e){var n,i,a,s=o?e.ok:e.fail,u=e.resolve,c=e.reject,l=e.domain;try{s?(o||(2==t._h&&M(t),t._h=1),!0===s?n=r:(l&&l.enter(),n=s(r),l&&(l.exit(),a=!0)),n===e.promise?c(k("Promise-chain cycle")):(i=L(n))?i.call(n,u,c):u(n)):c(r)}catch(t){l&&!a&&l.exit(),c(t)}};n.length>i;)a(n[i++]);t._c=[],t._n=!1,e&&!t._h&&I(t)})}},I=function(t){g.call(u,function(){var e,n,r,o=t._v,i=R(t);if(i&&(e=_(function(){E?C.emit("unhandledRejection",o,t):(n=u.onunhandledrejection)?n({promise:t,reason:o}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",o)}),t._h=E||R(t)?2:1),t._a=void 0,i&&e.e)throw e.v})},R=function(t){return 1!==t._h&&0===(t._a||t._c).length},M=function(t){g.call(u,function(){var e;E?C.emit("rejectionHandled",t):(e=u.onrejectionhandled)&&e({promise:t,reason:t._v})})},D=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),P(e,!0))},N=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw k("Promise can't be resolved itself");(e=L(t))?y(function(){var r={_w:n,_d:!1};try{e.call(t,c(N,r,1),c(D,r,1))}catch(t){D.call(r,t)}}):(n._v=t,n._s=1,P(n,!1))}catch(t){D.call({_w:n,_d:!1},t)}}};T||(O=function(t){h(this,O,"Promise","_h"),d(t),r.call(this);try{t(c(N,this,1),c(D,this,1))}catch(t){D.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(59)(O.prototype,{then:function(t,e){var n=j(m(this,O));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=E?C.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&P(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=c(N,t,1),this.reject=c(D,t,1)},b.f=j=function(t){return t===O||t===a?new i(t):o(t)}),f(f.G+f.W+f.F*!T,{Promise:O}),n(26)(O,"Promise"),n(60)("Promise"),a=n(13).Promise,f(f.S+f.F*!T,"Promise",{reject:function(t){var e=j(this);return(0,e.reject)(t),e.promise}}),f(f.S+f.F*(s||!T),"Promise",{resolve:function(t){return w(s&&this===a?O:this,t)}}),f(f.S+f.F*!(T&&n(79)(function(t){O.all(t).catch(A)})),"Promise",{all:function(t){var e=this,n=j(e),r=n.resolve,o=n.reject,i=_(function(){var n=[],i=0,a=1;v(t,!1,function(t){var s=i++,u=!1;n.push(void 0),a++,e.resolve(t).then(function(t){u||(u=!0,n[s]=t,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=j(e),r=n.reject,o=_(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},function(t,e,n){t.exports=!n(7)&&!n(6)(function(){return 7!=Object.defineProperty(n(55)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(4);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(5),o=n(23),i=n(1)("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},function(t,e,n){var r,o,i,a=n(9),s=n(99),u=n(77),c=n(55),l=n(3),f=l.process,p=l.setImmediate,d=l.clearImmediate,h=l.MessageChannel,v=l.Dispatch,m=0,g={},y=function(){var t=+this;if(g.hasOwnProperty(t)){var e=g[t];delete g[t],e()}},b=function(t){y.call(t.data)};p&&d||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return g[++m]=function(){s("function"==typeof t?t:Function(t),e)},r(m),m},d=function(t){delete g[t]},"process"==n(12)(f)?r=function(t){f.nextTick(a(y,t,1))}:v&&v.now?r=function(t){v.now(a(y,t,1))}:h?(i=(o=new h).port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",b,!1)):r="onreadystatechange"in c("script")?function(t){u.appendChild(c("script")).onreadystatechange=function(){u.removeChild(this),y.call(t)}}:function(t){setTimeout(a(y,t,1),0)}),t.exports={set:p,clear:d}},function(t,e,n){var r=n(3).document;t.exports=r&&r.documentElement},function(t,e,n){"use strict";var r=n(23);function o(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}t.exports.f=function(t){return new o(t)}},function(t,e,n){var r=n(1)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},t(i)}catch(t){}return n}},function(t,e,n){var r=n(14),o=n(29),i=n(81)(!1),a=n(62)("IE_PROTO");t.exports=function(t,e){var n,s=o(t),u=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);for(;e.length>u;)r(s,n=e[u++])&&(~i(c,n)||c.push(n));return c}},function(t,e,n){var r=n(29),o=n(15),i=n(105);t.exports=function(t){return function(e,n,a){var s,u=r(e),c=o(u.length),l=i(a,c);if(t&&n!=n){for(;c>l;)if((s=u[l++])!=s)return!0}else for(;c>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(2),o=n(13),i=n(6);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(5),o=n(110),i=n(63),a=n(62)("IE_PROTO"),s=function(){},u=function(){var t,e=n(55)("iframe"),r=i.length;for(e.style.display="none",n(77).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write(" + + diff --git a/docs/.vuepress/dist/guide/index.html b/docs/.vuepress/dist/guide/index.html new file mode 100644 index 0000000..f0bf52d --- /dev/null +++ b/docs/.vuepress/dist/guide/index.html @@ -0,0 +1,25 @@ + + + + + + Introduction | Seed ๐ŸŒฑ + + + + + + + +

Introduction

This vue-cli 3 template is targeted towards single page applications with state management. In order to fully enjoy working with this template, please read these documentations :

+ + + diff --git a/docs/.vuepress/dist/guide/installation.html b/docs/.vuepress/dist/guide/installation.html new file mode 100644 index 0000000..2924811 --- /dev/null +++ b/docs/.vuepress/dist/guide/installation.html @@ -0,0 +1,35 @@ + + + + + + Installation | Seed ๐ŸŒฑ + + + + + + + +

Installation

Node Version Requirement

Vue CLI requires Node.js version 8.9 or above (8.11.0+ recommended). You can manage multiple versions of Node on the same machine with nvm or nvm-windows.

Vue-cli

First, you need to install vue-cli package :

npm install -g @vue/cli
+# OR
+yarn global add @vue/cli
+

You can check you have the right version (3.x) with this command:

vue --version
+

Environmment settings

Create .env file by running :

$ cp .env.dist .env
+

Install dependencies

$ yarn install
+
+ + + diff --git a/docs/.vuepress/dist/guide/structure.html b/docs/.vuepress/dist/guide/structure.html new file mode 100644 index 0000000..414fe50 --- /dev/null +++ b/docs/.vuepress/dist/guide/structure.html @@ -0,0 +1,64 @@ + + + + + + Project structure | Seed ๐ŸŒฑ + + + + + + + +

Project structure

Please read Vue.js style guide.

Tree

.
+โ”œโ”€โ”€ locales/             # translations JSON files
+โ”‚   โ””โ”€โ”€ ...
+โ”œโ”€โ”€ public/              # public folder
+โ”‚ย ย  โ”œโ”€โ”€ favicon.ico
+โ”‚   โ””โ”€โ”€ index.html    
+โ”œโ”€โ”€ settings/            # application settings
+โ”‚ย ย  โ””โ”€โ”€ default.json
+โ”œโ”€โ”€ src/
+โ”‚ย ย  โ”œโ”€โ”€ assets/          # assets (images, styles, ...)
+โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...
+โ”‚ย ย  โ”œโ”€โ”€ components/      # ui components
+โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...
+โ”‚ย ย  โ”œโ”€โ”€ data/            # app datas
+โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...
+โ”‚ย ย  โ”œโ”€โ”€ lib/
+โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ locales/     # i18n from locales JSON files
+โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ index.js
+โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ router/      # router with routes
+โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index.js
+โ”‚ย ย  โ”‚ย ย  โ”‚ย   โ””โ”€โ”€ routes.js
+โ”‚   โ”‚   โ””โ”€โ”€ store /      # store (with state, mutations and actions)
+โ”‚ย ย  โ”‚ย ย   ย ย  โ””โ”€โ”€ index.js
+โ”‚ย ย  โ”œโ”€โ”€ transitions/     # vue transitions
+โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...
+โ”‚ย ย  โ”œโ”€โ”€ utils/           # somes utils js files
+โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...
+โ”‚ย ย  โ”œโ”€โ”€ views/           # views components
+โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...
+โ”‚ย ย  โ”œโ”€โ”€ main.js          # app entry file
+โ”‚ย ย  โ”œโ”€โ”€ App.vue          # main app component
+โ”œโ”€โ”€ tests/               # unit and e2e tests
+โ”‚   โ””โ”€โ”€ ...
+โ”œโ”€โ”€ .env.dist            # environnements settings
+โ””โ”€โ”€ package.json         # build scripts and dependencies
+

Environments settings

Setting your environnements variables using dotenv.

If you have to set protected data (like API token), or custom keys depending environnements, using these settings.

For getting variables from Vue components, prefix your variables by VUE_APP_ (example VUE_APP_SEED_KEY).

Application settings

A settings folder on root project for easily updating your project configuration.

It's simple configuration, example, default languague, default theme, etc.

Locales

A locales folder on root project, regrouping all translations in differents languages in JSON format.

+ + + diff --git a/docs/.vuepress/dist/guide/why.html b/docs/.vuepress/dist/guide/why.html new file mode 100644 index 0000000..2bb1401 --- /dev/null +++ b/docs/.vuepress/dist/guide/why.html @@ -0,0 +1,29 @@ + + + + + + Why ? | Seed ๐ŸŒฑ + + + + + + + +

Why ?

Vue-cli plugin allows to create a project with different features (Babel, TypeScript, linter, formatter, unit and E2E testing, etc) but with a default structure.

Seed proposes a project stucture adapted for developpers and others.

+ + + diff --git a/docs/.vuepress/dist/index.html b/docs/.vuepress/dist/index.html new file mode 100644 index 0000000..3630273 --- /dev/null +++ b/docs/.vuepress/dist/index.html @@ -0,0 +1,25 @@ + + + + + + Seed ๐ŸŒฑ + + + + + + + +

Seed ๐ŸŒฑ

+ A vue-cli 3 template who plants the first seed of your project in order to become a sturdy and flowering tree +

Get Started โ†’

+ + + diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..c73a079 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,7 @@ +--- +home: true +actionText: Get Started โ†’ +actionLink: /guide/ +footer: MIT Licensed | Copyright ยฉ 2019-present Pierre Charles +--- + diff --git a/docs/guide/README.md b/docs/guide/README.md new file mode 100644 index 0000000..90b8e56 --- /dev/null +++ b/docs/guide/README.md @@ -0,0 +1,21 @@ +--- +sidebarDepth: 0 +--- + +# Introduction + +This vue-cli 3 template is targeted towards single page applications with [state management](http://vuex.vuejs.org/en/intro.html). In order to fully enjoy working with this template, please read these documentations : + +- [Babel](https://babeljs.io/) +- [TypeScript](https://www.typescriptlang.org/) +- [vue](http://vuejs.org/guide/) +- [vue-cli](https://cli.vuejs.org/) +- [vue-router](router.vuejs.org/en/index.html) +- [vuex](http://vuex.vuejs.org/en/index.html) +- [vue-i18n](https://github.com/kazupon/vue-i18n) +- [standard style](https://github.com/feross/standard) +- [sass](https://sass-lang.com/dart-sass) +- [TSLint](https://palantir.github.io/tslint/) +- [Mocha](https://mochajs.org/) +- [Cypress](https://www.cypress.io/) +- [successfull git branching model](http://nvie.com/posts/a-successful-git-branching-model/) diff --git a/docs/guide/how-to-use.md b/docs/guide/how-to-use.md new file mode 100644 index 0000000..2e491a6 --- /dev/null +++ b/docs/guide/how-to-use.md @@ -0,0 +1,37 @@ +# How to use it ? + +## Development + +```bash +$ yarn run serve # compiles and hot-reloads for development +``` + +## Production + +```bash +$ yarn run build # compiles and minifies for production +``` + +## Testing + +Run your tests + +```bash +$ yarn run test # run your tests +$ yarn run test:e2e # run your end-to-end tests +$ yarn run test:unit # run your unit tests +``` + +## Lint + +```bash +$ yarn run lint # lints and fixes files +``` + +## Documentation + +```bash +$ yarn run docs:dev # run server for editing your vuepress documentation +$ yarn run docs:build # build your vuepress documentation +$ yarn run docs:deploy # deploys vuepress documentation +``` \ No newline at end of file diff --git a/docs/guide/installation.md b/docs/guide/installation.md new file mode 100644 index 0000000..187b3d6 --- /dev/null +++ b/docs/guide/installation.md @@ -0,0 +1,35 @@ +# Installation + +::: tip Node Version Requirement +Vue CLI requires [Node.js](https://nodejs.org/) version 8.9 or above (8.11.0+ recommended). You can manage multiple versions of Node on the same machine with [nvm](https://github.com/creationix/nvm) or [nvm-windows](https://github.com/coreybutler/nvm-windows). +::: + +## Vue-cli + +First, you need to install vue-cli package : + +``` bash +npm install -g @vue/cli +# OR +yarn global add @vue/cli +``` + +You can check you have the right version (3.x) with this command: + +```bash +vue --version +``` + +## Environmment settings + +Create _.env_ file by running : + +```bash +$ cp .env.dist .env +``` + +## Install dependencies + +```bash +$ yarn install +``` \ No newline at end of file diff --git a/docs/guide/structure.md b/docs/guide/structure.md new file mode 100644 index 0000000..51c4104 --- /dev/null +++ b/docs/guide/structure.md @@ -0,0 +1,61 @@ +# Project structure + +Please read [Vue.js style guide](https://vuejs.org/v2/style-guide/). + +## Tree + +``` +. +โ”œโ”€โ”€ locales/ # translations JSON files +โ”‚ โ””โ”€โ”€ ... +โ”œโ”€โ”€ public/ # public folder +โ”‚ย ย  โ”œโ”€โ”€ favicon.ico +โ”‚ โ””โ”€โ”€ index.html +โ”œโ”€โ”€ settings/ # application settings +โ”‚ย ย  โ””โ”€โ”€ default.json +โ”œโ”€โ”€ src/ +โ”‚ย ย  โ”œโ”€โ”€ assets/ # assets (images, styles, ...) +โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ... +โ”‚ย ย  โ”œโ”€โ”€ components/ # ui components +โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ... +โ”‚ย ย  โ”œโ”€โ”€ data/ # app datas +โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ... +โ”‚ย ย  โ”œโ”€โ”€ lib/ +โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ locales/ # i18n from locales JSON files +โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ index.js +โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ router/ # router with routes +โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index.js +โ”‚ย ย  โ”‚ย ย  โ”‚ย  โ””โ”€โ”€ routes.js +โ”‚ โ”‚ โ””โ”€โ”€ store / # store (with state, mutations and actions) +โ”‚ย ย  โ”‚ย ย  ย ย  โ””โ”€โ”€ index.js +โ”‚ย ย  โ”œโ”€โ”€ transitions/ # vue transitions +โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ... +โ”‚ย ย  โ”œโ”€โ”€ utils/ # somes utils js files +โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ... +โ”‚ย ย  โ”œโ”€โ”€ views/ # views components +โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ... +โ”‚ย ย  โ”œโ”€โ”€ main.js # app entry file +โ”‚ย ย  โ”œโ”€โ”€ App.vue # main app component +โ”œโ”€โ”€ tests/ # unit and e2e tests +โ”‚ โ””โ”€โ”€ ... +โ”œโ”€โ”€ .env.dist # environnements settings +โ””โ”€โ”€ package.json # build scripts and dependencies +``` + +## Environments settings + +Setting your environnements variables using [dotenv](https://github.com/motdotla/dotenv). + +If you have to set protected data (like API token), or custom keys depending environnements, using these settings. + +For getting variables from Vue components, prefix your variables by `VUE_APP_` (_example `VUE_APP_SEED_KEY`_). + +## Application settings + +A `settings` folder on root project for easily updating your project configuration. + +It's simple configuration, example, default languague, default theme, etc. + +## Locales + +A `locales` folder on root project, regrouping all translations in differents languages in JSON format. diff --git a/docs/guide/why.md b/docs/guide/why.md new file mode 100644 index 0000000..c2f0206 --- /dev/null +++ b/docs/guide/why.md @@ -0,0 +1,11 @@ +--- +sidebarDepth: 0 +--- + +# Why ? + +Vue-cli plugin allows to create a project with different features (Babel, TypeScript, linter, formatter, unit and E2E testing, etc) but with a default structure. + +Seed proposes a project stucture adapted for developpers and others. + + diff --git a/documentation/.gitignore b/documentation/.gitignore deleted file mode 100644 index 09ea21b..0000000 --- a/documentation/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_book/ diff --git a/documentation/README.md b/documentation/README.md deleted file mode 100644 index 1c6efad..0000000 --- a/documentation/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# seed ๐ŸŒฑ - -> A vue-cli template who plants the first seed of your project in order to become a sturdy and flowering tree - -## Introduction - -This vue-cli template is targeted towards single page applications with [state management](http://vuex.vuejs.org/en/intro.html) and support for [Electron](http://electron.atom.io/). In order to fully enjoy working with this template, please read these documentations : - -- [ES2015 syntax](https://babeljs.io/docs/learn-es2015/) -- [vue](http://vuejs.org/guide/) -- [vue-router](router.vuejs.org/en/index.html) -- [vuex](http://vuex.vuejs.org/en/index.html) -- [vue-i18n](https://github.com/kazupon/vue-i18n) -- [electron](http://electron.atom.io/) -- [standard style](https://github.com/feross/standard) -- [sass](http://sass-lang.com/) -- [successfull git branching model](http://nvie.com/posts/a-successful-git-branching-model/) - -## How to use - - -#### Install vue-cli as global - -``` -$ npm install -g vue-cli -``` - -#### Init your project - -``` bash -$ vue init pierrechls/seed my-project # init template -$ cd my-project # go to your project folder -$ npm install # install dependencies -$ npm run dev # serve with hot reload -``` - -## Credits - -This is inspired from [nd template](https://github.com/soixantecircuits/nd). This is originally a fork of the [webpack](https://github.com/vuejs-templates/webpack) template. Most credit goes to them! ๐Ÿ‘ diff --git a/documentation/book.json b/documentation/book.json deleted file mode 100644 index e55b436..0000000 --- a/documentation/book.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "gitbook": "2.5.2", - "structure": { - "summary": "summary.md" - } -} diff --git a/documentation/build-config.md b/documentation/build-config.md deleted file mode 100755 index d3b2020..0000000 --- a/documentation/build-config.md +++ /dev/null @@ -1,63 +0,0 @@ -# Configure your build - -_**Warning:** As a general rule, you should not mess with the `build/` and `config/` files. They are already set up for either Electron or the browser and you will most likely just f**k things up._ - -If you need to build your app into a place outside its current directory, you can edit `config/index.js`. - -Let's take a look at the default `config/index.js`: - -``` js -var path = require('path') - -module.exports = { - build: { - index: path.resolve(__dirname, 'dist/index.html'), - assetsRoot: path.resolve(__dirname, 'dist'), - assetsSubDirectory: 'static', - assetsPublicPath: '/', - productionSourceMap: true - }, - dev: { - port: 8080, - proxyTable: {} - } -} -``` - -Inside the `build` section, we have the following options: - -### `build.index` - -> Must be an absolute path on your local file system. - -This is where the `index.html` (with injected asset URLs) will be generated. - -### `build.assetsRoot` - -> Must be an absolute path on your local file system. - -This should point to the root directory that contains all the static assets for your app. - -### `build.assetsSubDirectory` - -Nest webpack-generated assets under this directory in `build.assetsRoot`, so that they are not mixed with other files you may have in `build.assetsRoot`. For example, if `build.assetsRoot` is `/path/to/dist`, and `build.assetsSubDirectory` is `static`, then all Webpack assets will be generated in `path/to/dist/static`. - -This directory will be cleaned before each build, so it should only contain assets generated by the build. - -Files inside `static/` will be copied into this directory as-is during build. This means if you change this prefix, all your absolute URLs referencing files in `static/` will also need to be changed. See [Handling Static Assets](static.md) for more details. - -### `build.assetsPublicPath` - -This should be the URL path where your `build.assetsRoot` will be served. If you are working on a browser targetted app, this will probably be `'/'` (you might need a prefix depending on your back-end), - -### `build.productionSourceMap` - -Whether to generate source maps for production build. - -### `dev.port` - -Specify the port for the dev server to listen to. - -### `dev.proxyTable` - -Define proxy rules for the dev server. See [API Proxying During Development](proxy.md) for more details. diff --git a/documentation/commands.md b/documentation/commands.md deleted file mode 100755 index 28b137a..0000000 --- a/documentation/commands.md +++ /dev/null @@ -1,56 +0,0 @@ -# Build commands - -All build commands are executed via [NPM Scripts](https://docs.npmjs.com/misc/scripts). - -### `npm start [-- -t "{target}"]` - -> Starts a Node.js local development server. See [API Proxying During Development](proxy.md) for more details. In Electron enabled apps, will also launch Electron at this address. The `npm run dev` works the same (`start` is an alias). - -- Webpack + `vue-loader` for single file Vue components. -- State preserving hot-reload -- State preserving compilation error overlay -- Lint-on-save with ESLint -- `-t` (or `--target=`) modifier is optionnal and override the default [webpack target](https://webpack.github.io/docs/configuration.html#target). This can allow you to develop in a browser with the Electron option enabled, or the opposite. -- Source maps. -- Autorun the `npm run electron` command. - -### `npm run electron [-- -s "{path to settings}"]` - -> Starts Electron and open a window at your local dev server. - -- Adds some developper friendly features when working in a dev environment: - - Auto opens the devtools. -- `-s` is optionnal and loads the settings given over the default settings. - -### `npm run build [-- -t "{target}"]` - -> Build assets for production. In Electron enabled apps, will also package the app. See [Configure you build](build-config.md) and [Electron support](electron.md) for more details. - -- Running only `npm run build` will build for the current platform. However, you can also run: - - `npm run build:darwin` - - `npm run build:linux` - - `npm run build:win32` - - `npm run build:all` *All platforms, all architectures* - - `npm run build:no-package` *Standalone build* -- JavaScript minified with [UglifyJS](https://github.com/mishoo/UglifyJS2). -- HTML minified with [html-minifier](https://github.com/kangax/html-minifier). -- CSS across all components extracted into a single file and minified with [cssnano](https://github.com/ben-eb/cssnano). -- All static assets compiled with version hashes for efficient long-term caching, and a production `index.html` is auto-generated with proper URLs to these generated assets. -- If you pick [Electron support](electron.md), build will be setup to work over `file://` and have access to [electron built-in modules](https://github.com/webpack/webpack/blob/3d5dc1a7bf8c7e44acb89d3f0c4b357df6a0ac0a/lib/WebpackOptionsApply.js#L122). -- `-t` (or `--target=`) modifier is optionnal and override the default [webpack target](https://webpack.github.io/docs/configuration.html#target) -- Also see [deployment notes](build-config.md). - -### `npm run package` - -> Package your app for distribution with [electron-packager](https://github.com/electron-userland/electron-packager). You'll need to have a bundle into the `dist/` folder. - -- Running only `npm run package` will package for the current platform. However, you can also run: - - `npm run package:darwin` - - `npm run package:linux` - - `npm run package:win32` - - `npm run package:all` *All platforms, all architectures* -- Portable version of your app (NodeJS and WebKit embedded). -- Package for Windows/OS X/Linux. -- Remove all `devDependencies` from the packaged binary, reducing final size a lot. -- Does not include development-only files and folders, saving even more space and protecting your app sources. -- See [Electron support](electron.md) diff --git a/documentation/electron.md b/documentation/electron.md deleted file mode 100755 index c2782eb..0000000 --- a/documentation/electron.md +++ /dev/null @@ -1,64 +0,0 @@ -# Electron support - -seed template allows you to generate a project with everything you need to develop and build an [Electron](http://electron.atom.io/) app. If you whish to learn more about Electron, please check out their [documentation](http://electron.atom.io/docs/). - -* -**Note**: If you want to be able to use your app into a browser, please read about the `--target` flag in the [commands](commands.md) section.* - -### Main file - -Electron needs an entry point to know how to run your app. This is the file stated in the `main` property of your `package.json`. By default, it will be `electron/main.js`. - -### Development and debug - -When using in development, you start Electron with: - -```bash -$ npm start -``` - -which internally runs: - -```bash -$ npm run electron -``` - -If you have checked the `package.json`, you've seen that what it does is simply launch: - -```bash -$ export NODE_ENV="dev"; ./node_modules/.bin/electron . -``` - -The main process now has a `process.env['NODE_ENV']` property equals to `'dev'` that we can use to start Electron on your local dev server, open the devtools , load the dev bundle that uses source maps, hot reload, linting, etc... - -### Using the `file://` protocol - -This is the main breaking point between electron and browser bundles (โ€œbundle" as in "webpack, the flexible module bundler"). When you package and distribute your app, you create a package containing Electron binary and your bundled source code. It means that: - -- you need to provide the renderer process a way to access your app files, -- you need to provide webpack a way to bundle you module and your assets, and make sure the path is still valid. - -With that in mind, you have two solutions: making your sources accessible through `http://` or `file://`. seed comes with the **`file://`** option for portability and simplicity. It simply takes some adjustements to the `webpack` config, by referencing the bundled files with their absolute path for example. - -Since seed comes with [`vue-router`](http://router.vuejs.org/en/index.html), you also have to keep in mind that you **cannot** enable the `history` [option](http://router.vuejs.org/en/options.html). That is because your app URLs would look like `file:///path/to/your/app/index.html/my-route/`, which makes no sense in UNIX filesystem architecture. - -### Building and packaging your app - -*See [`commands`](commands.md).* - -seed provides you a way to quickly and easily package your app into a Windows, OS X or Linux portable binary with: - -```bash -$ npm run build -``` - -Running this command will build your app into the `dist/` folder and package it for you. Without any further parameter will package your app for your current platform. Nevertheless, you can package for any platform from any OS by adding `:darwin`, `:linux`, `:win32` or `:all` to this command (see the [commands](commands.md) section). - -If you just want to build without packaging, simple type `npm run build:no-package`. - -If you only want to package with the current `dist/` folder, simple type `npm run package`. - -Architecture is `x64`, but if your project is targetted at `ia32` architecture, or even both, you can modify the `build/package-electron.js` file (see [here](https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#arch) for API details). - -No `devDependencies` will be copied into the packaged binary, but all standard `dependencies` will, except `electron-prebuilt`, `electron-packager` and all `node_modules/.bin` executables. `releases` and `.git` folders will also be ignored, as well as development-only files and folders (`build/`, `src`, ...) - diff --git a/documentation/env.md b/documentation/env.md deleted file mode 100755 index 8992dc7..0000000 --- a/documentation/env.md +++ /dev/null @@ -1,42 +0,0 @@ -# Environment variables - -Sometimes it is practical to have different config values according to the environment that the application is running in. - -As an example: - -```js -// config/prod.env.js -module.exports = { - NODE_ENV: '"production"', - DEBUG_MODE: false, - API_KEY: '"..."' // this is shared between all environments -} - -// config/dev.env.js -module.exports = merge(prodEnv, { - NODE_ENV: '"development"', - DEBUG_MODE: true // this overrides the DEBUG_MODE value of prod.env -}) -``` - -> **Note:** string variables need to be wrapped into single and double quotes `'"..."'` - -So, the environment variables are: -- Production - - NODE_ENV = 'production', - - DEBUG_MODE = false, - - API_KEY = '...' -- Development - - NODE_ENV = 'development', - - DEBUG_MODE = true, - - API_KEY = '...' - -As we can see, the `dev.env` inherits the `prod.env`. - -### Usage - -It is simple to use the environment variables to your code. For example: - -```js -Vue.config.debug = process.env.DEBUG_MODE -``` \ No newline at end of file diff --git a/documentation/prerender.md b/documentation/prerender.md deleted file mode 100755 index 7684bfd..0000000 --- a/documentation/prerender.md +++ /dev/null @@ -1,3 +0,0 @@ -# Prerendering for SEO - -If you want to prerender routes that will not significantly change once pushed to production, use this Webpack plugin: [prerender-spa-plugin](https://www.npmjs.com/package/prerender-spa-plugin), which has been tested for use with Vue. For pages that _do_ frequently change, [Prerender.io](https://prerender.io/) and [Netlify](https://www.netlify.com/pricing) both offer plans for regularly re-prerendering your content for search engines. diff --git a/documentation/proxy.md b/documentation/proxy.md deleted file mode 100755 index 5143133..0000000 --- a/documentation/proxy.md +++ /dev/null @@ -1,26 +0,0 @@ -# API proxying during development - -When integrating this boilerplate with an existing backend, a common need is to access the backend API when using the dev server. To achieve that, we can run the dev server and the API backend side-by-side (or remotely), and let the dev server proxy all API requests to the actual backend. - -To configure the proxy rules, edit `dev.proxyTable` option in `config.js`. The dev server is using [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware) for proxying, so you should refer to its docs for detailed usage. But here's a simple example: - -``` js -// config.js -module.exports = { - // ... - dev: { - proxyTable: { - // proxy all requests starting with /api to jsonplaceholder - '/api': { - target: 'http://jsonplaceholder.typicode.com', - changeOrigin: true, - pathRewrite: { - '^/api': '' - } - } - } - } -} -``` - -The above example will proxy the request `/api/posts/1` to `http://jsonplaceholder.typicode.com/posts/1`. diff --git a/documentation/static.md b/documentation/static.md deleted file mode 100755 index 7929cd2..0000000 --- a/documentation/static.md +++ /dev/null @@ -1,56 +0,0 @@ -# Handing static assets - -> You will notice in the project structure we have two directories for static assets: `src/assets` and `static/`. What is the difference between them? - -### Webpacked Assets - -To answer this question, we first need to understand how Webpack deals with static assets. In `*.vue` components, all your templates and CSS are parsed by `vue-html-loader` and `css-loader` to look for asset URLs. For example, in `` and `background: url(./logo.png)`, `"./logo.png"` is a relative asset path and will be **resolved by Webpack as a module dependency**. - -Because `logo.png` is not JavaScript, when treated as a module dependency, we need to use `url-loader` and `file-loader` to process it. This boilerplate has already configured these loaders for you, so you basically get features such as filename fingerprinting and conditional bas64 inlining for free, while being able to use relative/module paths without worrying about deployment. - -Since these assets may be inlined/copied/renamed during build, they are essentially part of your source code. This is why it is recommended to place Webpack-processed static assets inside `/src`, along side other source files. In fact, you don't even have to put them all in `/src/assets`: you can organize them based on the module/component using them. For example, you can put each component in its own directory, with its static assets right next to it. - -### Asset Resolving Rules - -- **Relative URLs**, e.g. `./assets/logo.png` will be interpreted as a module dependency. They will be replaced with a auto-generated URL based on your Webpack output configuration. - -- **Non-prefixed URLs**, e.g. `assets/logo.png` will be treated the same as the relative URLs and translated into `./assets/logo.png`. - -- **URLs prefixed with `~`** are treated as a module request, similar to `require('some-module/image.png')`. You need to use this prefix if you want to leverage Webpack's module resolving configurations. For example if you have a resolve alias for `assets`, you need to use `` to ensure that alias is respected. - -- **Root-relative URLs**, e.g. `/assets/logo.png` are not processed at all. - -### Getting Asset Paths in JavaScript - -In order for Webpack to return the correct asset paths, you need to use `require('./relative/path/to/file.jpg')`, which will get processed by `file-loader` and returns the resolved URL. For example: - -``` js -computed: { - background () { - return require('./bgs/' + this.id + '.jpg') - } -} -``` - -**Note the above example will include every image under `./bgs/` in the final build.** This is because Webpack cannot guess which of them will be used at runtime, so it includes them all. - -### "Real" Static Assets - -In comparison, files in `static/` are not processed by Webpack at all: they are directly copied to their final destination as-is, with the same filename. You must reference these files using absolute paths, which is determined by joining `build.assetsPublicPath` and `build.assetsSubDirectory` in `config.js`. - -As an example, with the following default values: - -``` js -// config.js -module.exports = { - // ... - build: { - assetsPublicPath: '/', - assetsSubDirectory: 'static' - } -} -``` - -Any file placed in `static/` should be referenced using the absolute URL `/static/[filename]`. If you change `assetSubDirectory` to `assets`, then these URLs will need to be changed to `/assets/[filename]`. - -We will learn more about the config file in the section about [Configure you build](build-config.md). diff --git a/documentation/structure.md b/documentation/structure.md deleted file mode 100755 index e71ddba..0000000 --- a/documentation/structure.md +++ /dev/null @@ -1,90 +0,0 @@ -# Project structure - -> A project structure tree to allow you to find quickly the folder you need - -
- -``` bash -. -โ”œโ”€โ”€ build/ # webpack config files -โ”‚ โ””โ”€โ”€ ... -โ”œโ”€โ”€ config/ -โ”‚ย ย  โ”œโ”€โ”€ index.js # main project config -โ”‚ โ””โ”€โ”€ ... -โ”œโ”€โ”€ electron/ -โ”‚ย ย  โ””โ”€โ”€ main.js # electron entry point -โ”œโ”€โ”€ locales/ -โ”‚ย ย  โ”œโ”€โ”€ language # translations files -โ”‚ โ”‚ โ””โ”€โ”€ index.js -โ”‚ โ””โ”€โ”€ index.js # init translations files wit vue-i18n -โ”œโ”€โ”€ settings/ -โ”‚ย ย  โ””โ”€โ”€ default.json # default settings -โ”œโ”€โ”€ releases/ # destination folder for your electron packaged apps -โ”‚ โ””โ”€โ”€ ... -โ”œโ”€โ”€ src/ -โ”‚ย ย  โ”œโ”€โ”€ assets/ # module assets (processed by webpack) -โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ... -โ”‚ย ย  โ”œโ”€โ”€ components/ # ui components -โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ... -โ”‚ย ย  โ”œโ”€โ”€ data/ # app datas -โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ... -โ”‚ย ย  โ”œโ”€โ”€ lib/ # some files to different librairies -โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ... -โ”‚ย ย  โ”œโ”€โ”€ router/ # router (with routes) -โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index.js -โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ routes.js -โ”‚ โ”œโ”€โ”€ store # store (with state, mutations and actions) -โ”‚ โ”‚ โ””โ”€โ”€ index.js -โ”‚ย ย  โ”œโ”€โ”€ transitions/ # vue transitions -โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ... -โ”‚ย ย  โ”œโ”€โ”€ utils/ # somes utils js files -โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ... -โ”‚ย ย  โ”œโ”€โ”€ views/ # views components -โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ... -โ”‚ย ย  โ”œโ”€โ”€ main.js # app entry file -โ”‚ย ย  โ”œโ”€โ”€ App.vue # main app component -โ”œโ”€โ”€ static/ # pure static assets (directly copied) -โ”œโ”€โ”€ .babelrc # babel config -โ”œโ”€โ”€ .editorconfig.js # editor config -โ”œโ”€โ”€ .eslintrc.js # eslint config -โ”œโ”€โ”€ index.html # index.html template -โ””โ”€โ”€ package.json # build scripts and dependencies -``` - -### `build/` - -This directory holds the actual configurations for both the development server and the production webpack build. Normally you don't need to touch these files unless you want to customize Webpack loaders, in which case you should probably look at `build/webpack.base.conf.js`. - -### `config/index.js` - -This is the main configuration file that exposes some of the most common configuration options for the build setup. See [API Proxying During Development](proxy.md) and [Configure you build](build-config.md) for more details. - -### `electron/` - -This directory holds all the electron related stuffs. The `main.js` file is the entry point for Electron, as specified in the `main` property of your `package.json`. See [Electron support](electron.md) for more details. - -### `settings/` - -This is where the settings of your app should be. The default.json file contains all the default settings and will always be loaded first as the base of your settings. - -### `releases/` - -This is where your packaged app will resides. Naming convention for packaged folders is `{project-name}-{platform}-{arch}` See [Electron support](electron.md) for more details. - -### `src/` - -This is where most of your application code will live in. How to structure everything inside this directory is largely up to you; if you are using Vuex, you can consult the [recommendations for Vuex applications](http://vuex.vuejs.org/en/structure.html). - -### `static/` - -This directory is an escape hatch for static assets that you do not want to process with Webpack. They will be directly copied into the same directory where webpack-built assets are generated. - -See [Handling Static Assets](static.md) for more details. - -### `index.html` - -This is the **template** `index.html` for our single page application. During development and builds, Webpack will generate assets, and the URLs for those generated assets will automatically injected into this template to render the final HTML. - -### `package.json` - -The NPM package meta file that contains all the build dependencies and [build commands](commands.md). diff --git a/documentation/styles.md b/documentation/styles.md deleted file mode 100755 index f92f92a..0000000 --- a/documentation/styles.md +++ /dev/null @@ -1,28 +0,0 @@ -# Styles - -> seed template uses SASS as pre-processors - -### Using SASS in App - -To ensure consistent extraction and processing, it is recommended to import global, standalone style files from your root `App.vue` component, for example: - -``` html - - -``` - -### Using SASS inside Components - -Inside your `*.vue` components, use the `lang` attribute on ` -``` - -### A note on SASS syntax - -- `lang="scss"` corresponds to the CSS-superset syntax (with curly braces and semicolones). -- `lang="sass"` corresponds to the indentation-based syntax. - diff --git a/documentation/summary.md b/documentation/summary.md deleted file mode 100755 index 2b6193d..0000000 --- a/documentation/summary.md +++ /dev/null @@ -1,11 +0,0 @@ -# Summary - -- [Project structure](structure.md) -- [Build commands](commands.md) -- [Styles](styles.md) -- [Handling static assets](static.md) -- [Environment variables](env.md) -- [Electron support](electron.md) -- [Configure your build](build-config.md) -- [API proxying during development](proxy.md) -- [Prerendering for SEO](prerender.md) From be43850a5b4f1b73a23b3bcd8a750eb0b8e16f2c Mon Sep 17 00:00:00 2001 From: Pierre Charles Date: Sun, 3 Mar 2019 17:14:35 +0100 Subject: [PATCH 10/12] :fire: Removing dist files --- docs/.vuepress/dist/404.html | 17 ----- .../dist/assets/css/0.styles.65ac630d.css | 1 - .../dist/assets/img/search.83621669.svg | 1 - docs/.vuepress/dist/assets/js/2.7974f97d.js | 1 - docs/.vuepress/dist/assets/js/3.5ee90f85.js | 1 - docs/.vuepress/dist/assets/js/4.fdd5b91a.js | 1 - docs/.vuepress/dist/assets/js/5.d4a364c2.js | 1 - docs/.vuepress/dist/assets/js/6.279545f0.js | 1 - docs/.vuepress/dist/assets/js/7.fb768c3a.js | 1 - docs/.vuepress/dist/assets/js/8.41d11667.js | 1 - docs/.vuepress/dist/assets/js/9.6689b887.js | 1 - docs/.vuepress/dist/assets/js/app.b0bd413c.js | 8 --- docs/.vuepress/dist/guide/how-to-use.html | 34 ---------- docs/.vuepress/dist/guide/index.html | 25 -------- docs/.vuepress/dist/guide/installation.html | 35 ---------- docs/.vuepress/dist/guide/structure.html | 64 ------------------- docs/.vuepress/dist/guide/why.html | 29 --------- docs/.vuepress/dist/index.html | 25 -------- 18 files changed, 247 deletions(-) delete mode 100644 docs/.vuepress/dist/404.html delete mode 100644 docs/.vuepress/dist/assets/css/0.styles.65ac630d.css delete mode 100644 docs/.vuepress/dist/assets/img/search.83621669.svg delete mode 100644 docs/.vuepress/dist/assets/js/2.7974f97d.js delete mode 100644 docs/.vuepress/dist/assets/js/3.5ee90f85.js delete mode 100644 docs/.vuepress/dist/assets/js/4.fdd5b91a.js delete mode 100644 docs/.vuepress/dist/assets/js/5.d4a364c2.js delete mode 100644 docs/.vuepress/dist/assets/js/6.279545f0.js delete mode 100644 docs/.vuepress/dist/assets/js/7.fb768c3a.js delete mode 100644 docs/.vuepress/dist/assets/js/8.41d11667.js delete mode 100644 docs/.vuepress/dist/assets/js/9.6689b887.js delete mode 100644 docs/.vuepress/dist/assets/js/app.b0bd413c.js delete mode 100644 docs/.vuepress/dist/guide/how-to-use.html delete mode 100644 docs/.vuepress/dist/guide/index.html delete mode 100644 docs/.vuepress/dist/guide/installation.html delete mode 100644 docs/.vuepress/dist/guide/structure.html delete mode 100644 docs/.vuepress/dist/guide/why.html delete mode 100644 docs/.vuepress/dist/index.html diff --git a/docs/.vuepress/dist/404.html b/docs/.vuepress/dist/404.html deleted file mode 100644 index 4ed8cc1..0000000 --- a/docs/.vuepress/dist/404.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - Seed ๐ŸŒฑ - - - - - - - -

404

Looks like we've got some broken links.
Take me home.
- - - diff --git a/docs/.vuepress/dist/assets/css/0.styles.65ac630d.css b/docs/.vuepress/dist/assets/css/0.styles.65ac630d.css deleted file mode 100644 index 8616f6d..0000000 --- a/docs/.vuepress/dist/assets/css/0.styles.65ac630d.css +++ /dev/null @@ -1 +0,0 @@ -.home{padding:3.6rem 2rem 0;max-width:960px;margin:0 auto}.home .hero{text-align:center}.home .hero img{max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#6a8bad}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#3eaf7c;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #389d70}.home .hero .action-button:hover{background-color:#4abf8a}.home .features{border-top:1px solid #eaecef;padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:#3a5169}.home .feature p{color:#4e6e8e}.home .footer{padding:2.5rem;border-top:1px solid #eaecef;text-align:center;color:#4e6e8e}@media (max-width:719px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.badge[data-v-099ab69c]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff;margin-right:5px;background-color:#42b983}.badge.middle[data-v-099ab69c]{vertical-align:middle}.badge.top[data-v-099ab69c]{vertical-align:top}.badge.green[data-v-099ab69c],.badge.tip[data-v-099ab69c]{background-color:#42b983}.badge.error[data-v-099ab69c]{background-color:#da5961}.badge.warn[data-v-099ab69c],.badge.warning[data-v-099ab69c],.badge.yellow[data-v-099ab69c]{background-color:#e7c000}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;color:#4e6e8e;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all .2s ease;background:#fff url(/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#3eaf7c}.search-box .suggestions{background:#fff;width:20rem;position:absolute;top:1.5rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:#5d82a6}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:#f3f4f5}.search-box .suggestion.focused a{color:#3eaf7c}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title{display:block}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#3eaf7c}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #3eaf7c;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper .dropdown-title .arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #ccc;border-bottom:0}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid #ddd;border-bottom-color:#ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#3eaf7c}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#2c3e50}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #46bd87}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem;position:relative}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#2c3e50;position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}.navbar .links .nav-links{flex:1}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}}.page-edit,.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit,.page-nav{padding:2rem}}@media (max-width:419px){.page-edit,.page-nav{padding:1.5rem}}.page{padding-bottom:2rem}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#4e6e8e;margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#4e6e8e}.page-edit .last-updated .time{font-weight:400;color:#aaa}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.sidebar-button{display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.sidebar-group:not(.first){margin-top:1em}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading{cursor:auto;color:inherit}.sidebar-heading{color:#999;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:0 1.5rem;margin-top:0;margin-bottom:.5rem}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading:.open .arrow{top:-.18em}.sidebar-group-items{transition:height .1s ease-out;overflow:hidden}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem 0}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar .sidebar-links{padding:1.5rem 0}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar .sidebar-links{padding:1rem 0}}.sw-update-popup{position:fixed;right:1em;bottom:1em;padding:1em;border:1px solid #3eaf7c;border-radius:3px;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.5);text-align:center}.sw-update-popup button{margin-top:.5em;padding:.25em 2em}.sw-update-popup-enter-active,.sw-update-popup-leave-active{transition:opacity .3s,transform .3s}.sw-update-popup-enter,.sw-update-popup-leave-to{opacity:0;transform:translateY(50%) scale(.5)}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;tab-size:4;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}#nprogress{pointer-events:none}#nprogress .bar{background:#3eaf7c;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #3eaf7c,0 0 5px #3eaf7c;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#3eaf7c;border-left-color:#3eaf7c;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.content code{color:#476582;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.content pre,.content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.content pre[class*=language-] code,.content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#282c34;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number,div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#282c34}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}.custom-block .custom-block-title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#2c3e50}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#2c3e50}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.content:not(.custom){padding:2rem}}@media (max-width:419px){.content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#2c3e50}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:3.6rem;background-color:#fff;box-sizing:border-box;border-bottom:1px solid #eaecef}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:15px;background-color:#fff;width:20rem;position:fixed;z-index:10;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #eaecef;overflow-y:auto}.content:not(.custom)>:first-child{margin-top:3.6rem}.content:not(.custom) a:hover{text-decoration:underline}.content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.content:not(.custom) img{max-width:100%}.content.custom{padding:0;margin:0}.content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#3eaf7c}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1.2rem;color:#999;border-left:.25rem solid #dfe2e5;margin-left:0;padding-left:1rem}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.content:not(.custom)>h1,.content:not(.custom)>h2,.content:not(.custom)>h3,.content:not(.custom)>h4,.content:not(.custom)>h5,.content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.content:not(.custom)>h1:first-child,.content:not(.custom)>h2:first-child,.content:not(.custom)>h3:first-child,.content:not(.custom)>h4:first-child,.content:not(.custom)>h5:first-child,.content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.content:not(.custom)>h1:first-child+.custom-block,.content:not(.custom)>h1:first-child+p,.content:not(.custom)>h1:first-child+pre,.content:not(.custom)>h2:first-child+.custom-block,.content:not(.custom)>h2:first-child+p,.content:not(.custom)>h2:first-child+pre,.content:not(.custom)>h3:first-child+.custom-block,.content:not(.custom)>h3:first-child+p,.content:not(.custom)>h3:first-child+pre,.content:not(.custom)>h4:first-child+.custom-block,.content:not(.custom)>h4:first-child+p,.content:not(.custom)>h4:first-child+pre,.content:not(.custom)>h5:first-child+.custom-block,.content:not(.custom)>h5:first-child+p,.content:not(.custom)>h5:first-child+pre,.content:not(.custom)>h6:first-child+.custom-block,.content:not(.custom)>h6:first-child+p,.content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #eaecef}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid #eaecef}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5;padding:.6em 1em}.custom-layout{padding-top:3.6rem}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}.theme-container.no-navbar .custom-layout{padding-top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.icon.outbound{color:#aaa;display:inline-block}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-weight:400;display:inline-block;color:#2c3e50;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#3eaf7c}a.sidebar-link.active{font-weight:600;color:#3eaf7c;border-left-color:#3eaf7c}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500} \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/img/search.83621669.svg b/docs/.vuepress/dist/assets/img/search.83621669.svg deleted file mode 100644 index 03d8391..0000000 --- a/docs/.vuepress/dist/assets/img/search.83621669.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/.vuepress/dist/assets/js/2.7974f97d.js b/docs/.vuepress/dist/assets/js/2.7974f97d.js deleted file mode 100644 index 5eb5eae..0000000 --- a/docs/.vuepress/dist/assets/js/2.7974f97d.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{165:function(t,n,e){},166:function(t,n,e){"use strict";var a=e(165);e.n(a).a},168:function(t,n,e){"use strict";e.r(n);var a={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,n){var e=n.props,a=n.slots;return t("span",{class:["badge",e.type,e.vertical]},e.text||a().default)}},r=(e(166),e(0)),i=Object(r.a)(a,void 0,void 0,!1,null,"099ab69c",null);n.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/3.5ee90f85.js b/docs/.vuepress/dist/assets/js/3.5ee90f85.js deleted file mode 100644 index 6357b2c..0000000 --- a/docs/.vuepress/dist/assets/js/3.5ee90f85.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{169:function(t,n,e){"use strict";e.r(n);var s=e(0),c=Object(s.a)({},function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"content"})},[],!1,null,null,null);n.default=c.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/4.fdd5b91a.js b/docs/.vuepress/dist/assets/js/4.fdd5b91a.js deleted file mode 100644 index 1b0dd78..0000000 --- a/docs/.vuepress/dist/assets/js/4.fdd5b91a.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{170:function(e,t,r){"use strict";r.r(t);var n=r(0),a=Object(n.a)({},function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"content"},[e._m(0),e._v(" "),r("p",[e._v("This vue-cli 3 template is targeted towards single page applications with "),r("a",{attrs:{href:"http://vuex.vuejs.org/en/intro.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("state management"),r("OutboundLink")],1),e._v(". In order to fully enjoy working with this template, please read these documentations :")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://babeljs.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Babel"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.typescriptlang.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("TypeScript"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"http://vuejs.org/guide/",target:"_blank",rel:"noopener noreferrer"}},[e._v("vue"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://cli.vuejs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("vue-cli"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("router-link",{attrs:{to:"./router.vuejs.org/en/index.html"}},[e._v("vue-router")])],1),e._v(" "),r("li",[r("a",{attrs:{href:"http://vuex.vuejs.org/en/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("vuex"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/kazupon/vue-i18n",target:"_blank",rel:"noopener noreferrer"}},[e._v("vue-i18n"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/feross/standard",target:"_blank",rel:"noopener noreferrer"}},[e._v("standard style"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://sass-lang.com/dart-sass",target:"_blank",rel:"noopener noreferrer"}},[e._v("sass"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://palantir.github.io/tslint/",target:"_blank",rel:"noopener noreferrer"}},[e._v("TSLint"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://mochajs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Mocha"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"https://www.cypress.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cypress"),r("OutboundLink")],1)]),e._v(" "),r("li",[r("a",{attrs:{href:"http://nvie.com/posts/a-successful-git-branching-model/",target:"_blank",rel:"noopener noreferrer"}},[e._v("successfull git branching model"),r("OutboundLink")],1)])])])},[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",{attrs:{id:"introduction"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#introduction","aria-hidden":"true"}},[this._v("#")]),this._v(" Introduction")])}],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/5.d4a364c2.js b/docs/.vuepress/dist/assets/js/5.d4a364c2.js deleted file mode 100644 index 92c61ac..0000000 --- a/docs/.vuepress/dist/assets/js/5.d4a364c2.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{174:function(t,a,s){"use strict";s.r(a);var e=s(0),n=Object(e.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"content"},[s("h1",{attrs:{id:"how-to-use-it"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#how-to-use-it","aria-hidden":"true"}},[t._v("#")]),t._v(" How to use it ?")]),t._v(" "),s("h2",{attrs:{id:"development"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#development","aria-hidden":"true"}},[t._v("#")]),t._v(" Development")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("$ yarn run serve "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# compiles and hot-reloads for development")]),t._v("\n")])])]),s("h2",{attrs:{id:"production"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#production","aria-hidden":"true"}},[t._v("#")]),t._v(" Production")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("$ yarn run build "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# compiles and minifies for production")]),t._v("\n")])])]),s("h2",{attrs:{id:"testing"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#testing","aria-hidden":"true"}},[t._v("#")]),t._v(" Testing")]),t._v(" "),s("p",[t._v("Run your tests")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("$ yarn run "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("test")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# run your tests")]),t._v("\n$ yarn run test:e2e "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# run your end-to-end tests")]),t._v("\n$ yarn run test:unit "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# run your unit tests")]),t._v("\n")])])]),s("h2",{attrs:{id:"lint"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#lint","aria-hidden":"true"}},[t._v("#")]),t._v(" Lint")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("$ yarn run lint "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# lints and fixes files")]),t._v("\n")])])]),s("h2",{attrs:{id:"documentation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#documentation","aria-hidden":"true"}},[t._v("#")]),t._v(" Documentation")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("$ yarn run docs:dev "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# run server for editing your vuepress documentation")]),t._v("\n$ yarn run docs:build "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# build your vuepress documentation")]),t._v("\n$ yarn run docs:deploy "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# deploys vuepress documentation ")]),t._v("\n")])])])])}],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/6.279545f0.js b/docs/.vuepress/dist/assets/js/6.279545f0.js deleted file mode 100644 index 373d8be..0000000 --- a/docs/.vuepress/dist/assets/js/6.279545f0.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{173:function(t,e,s){"use strict";s.r(e);var a=s(0),n=Object(a.a)({},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"content"},[t._m(0),t._v(" "),s("div",{staticClass:"tip custom-block"},[s("p",{staticClass:"custom-block-title"},[t._v("Node Version Requirement")]),t._v(" "),s("p",[t._v("Vue CLI requires "),s("a",{attrs:{href:"https://nodejs.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Node.js"),s("OutboundLink")],1),t._v(" version 8.9 or above (8.11.0+ recommended). You can manage multiple versions of Node on the same machine with "),s("a",{attrs:{href:"https://github.com/creationix/nvm",target:"_blank",rel:"noopener noreferrer"}},[t._v("nvm"),s("OutboundLink")],1),t._v(" or "),s("a",{attrs:{href:"https://github.com/coreybutler/nvm-windows",target:"_blank",rel:"noopener noreferrer"}},[t._v("nvm-windows"),s("OutboundLink")],1),t._v(".")])]),t._v(" "),t._m(1),t._v(" "),s("p",[t._v("First, you need to install vue-cli package :")]),t._v(" "),t._m(2),s("p",[t._v("You can check you have the right version (3.x) with this command:")]),t._v(" "),t._m(3),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._m(7),t._v(" "),t._m(8)])},[function(){var t=this.$createElement,e=this._self._c||t;return e("h1",{attrs:{id:"installation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#installation","aria-hidden":"true"}},[this._v("#")]),this._v(" Installation")])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"vue-cli"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#vue-cli","aria-hidden":"true"}},[this._v("#")]),this._v(" Vue-cli")])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[this._v("npm")]),this._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[this._v("install")]),this._v(" -g @vue/cli\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[this._v("# OR")]),this._v("\nyarn global add @vue/cli\n")])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[this._v("vue --version\n")])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"environmment-settings"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#environmment-settings","aria-hidden":"true"}},[this._v("#")]),this._v(" Environmment settings")])},function(){var t=this.$createElement,e=this._self._c||t;return e("p",[this._v("Create "),e("em",[this._v(".env")]),this._v(" file by running :")])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[this._v("$ "),e("span",{pre:!0,attrs:{class:"token function"}},[this._v("cp")]),this._v(" .env.dist .env\n")])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"install-dependencies"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#install-dependencies","aria-hidden":"true"}},[this._v("#")]),this._v(" Install dependencies")])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[this._v("$ yarn "),e("span",{pre:!0,attrs:{class:"token function"}},[this._v("install")]),this._v("\n")])])])}],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/7.fb768c3a.js b/docs/.vuepress/dist/assets/js/7.fb768c3a.js deleted file mode 100644 index aaba8bb..0000000 --- a/docs/.vuepress/dist/assets/js/7.fb768c3a.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{172:function(t,e,s){"use strict";s.r(e);var n=s(0),i=Object(n.a)({},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"content"},[t._m(0),t._v(" "),s("p",[t._v("Please read "),s("a",{attrs:{href:"https://vuejs.org/v2/style-guide/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Vue.js style guide"),s("OutboundLink")],1),t._v(".")]),t._v(" "),t._m(1),t._v(" "),t._m(2),t._m(3),t._v(" "),s("p",[t._v("Setting your environnements variables using "),s("a",{attrs:{href:"https://github.com/motdotla/dotenv",target:"_blank",rel:"noopener noreferrer"}},[t._v("dotenv"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("p",[t._v("If you have to set protected data (like API token), or custom keys depending environnements, using these settings.")]),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),s("p",[t._v("It's simple configuration, example, default languague, default theme, etc.")]),t._v(" "),t._m(7),t._v(" "),t._m(8)])},[function(){var t=this.$createElement,e=this._self._c||t;return e("h1",{attrs:{id:"project-structure"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#project-structure","aria-hidden":"true"}},[this._v("#")]),this._v(" Project structure")])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"tree"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#tree","aria-hidden":"true"}},[this._v("#")]),this._v(" Tree")])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[this._v(".\nโ”œโ”€โ”€ locales/ # translations JSON files\nโ”‚ โ””โ”€โ”€ ...\nโ”œโ”€โ”€ public/ # public folder\nโ”‚ย ย  โ”œโ”€โ”€ favicon.ico\nโ”‚ โ””โ”€โ”€ index.html \nโ”œโ”€โ”€ settings/ # application settings\nโ”‚ย ย  โ””โ”€โ”€ default.json\nโ”œโ”€โ”€ src/\nโ”‚ย ย  โ”œโ”€โ”€ assets/ # assets (images, styles, ...)\nโ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...\nโ”‚ย ย  โ”œโ”€โ”€ components/ # ui components\nโ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...\nโ”‚ย ย  โ”œโ”€โ”€ data/ # app datas\nโ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...\nโ”‚ย ย  โ”œโ”€โ”€ lib/\nโ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ locales/ # i18n from locales JSON files\nโ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ index.js\nโ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ router/ # router with routes\nโ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index.js\nโ”‚ย ย  โ”‚ย ย  โ”‚ย  โ””โ”€โ”€ routes.js\nโ”‚ โ”‚ โ””โ”€โ”€ store / # store (with state, mutations and actions)\nโ”‚ย ย  โ”‚ย ย  ย ย  โ””โ”€โ”€ index.js\nโ”‚ย ย  โ”œโ”€โ”€ transitions/ # vue transitions\nโ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...\nโ”‚ย ย  โ”œโ”€โ”€ utils/ # somes utils js files\nโ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...\nโ”‚ย ย  โ”œโ”€โ”€ views/ # views components\nโ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...\nโ”‚ย ย  โ”œโ”€โ”€ main.js # app entry file\nโ”‚ย ย  โ”œโ”€โ”€ App.vue # main app component\nโ”œโ”€โ”€ tests/ # unit and e2e tests\nโ”‚ โ””โ”€โ”€ ...\nโ”œโ”€โ”€ .env.dist # environnements settings\nโ””โ”€โ”€ package.json # build scripts and dependencies\n")])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"environments-settings"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#environments-settings","aria-hidden":"true"}},[this._v("#")]),this._v(" Environments settings")])},function(){var t=this.$createElement,e=this._self._c||t;return e("p",[this._v("For getting variables from Vue components, prefix your variables by "),e("code",[this._v("VUE_APP_")]),this._v(" ("),e("em",[this._v("example "),e("code",[this._v("VUE_APP_SEED_KEY")])]),this._v(").")])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"application-settings"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#application-settings","aria-hidden":"true"}},[this._v("#")]),this._v(" Application settings")])},function(){var t=this.$createElement,e=this._self._c||t;return e("p",[this._v("A "),e("code",[this._v("settings")]),this._v(" folder on root project for easily updating your project configuration.")])},function(){var t=this.$createElement,e=this._self._c||t;return e("h2",{attrs:{id:"locales"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#locales","aria-hidden":"true"}},[this._v("#")]),this._v(" Locales")])},function(){var t=this.$createElement,e=this._self._c||t;return e("p",[this._v("A "),e("code",[this._v("locales")]),this._v(" folder on root project, regrouping all translations in differents languages in JSON format.")])}],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/8.41d11667.js b/docs/.vuepress/dist/assets/js/8.41d11667.js deleted file mode 100644 index 4b894d7..0000000 --- a/docs/.vuepress/dist/assets/js/8.41d11667.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{171:function(t,e,s){"use strict";s.r(e);var r=s(0),a=Object(r.a)({},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"content"},[e("h1",{attrs:{id:"why"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#why","aria-hidden":"true"}},[this._v("#")]),this._v(" Why ?")]),this._v(" "),e("p",[this._v("Vue-cli plugin allows to create a project with different features (Babel, TypeScript, linter, formatter, unit and E2E testing, etc) but with a default structure.")]),this._v(" "),e("p",[this._v("Seed proposes a project stucture adapted for developpers and others.")])])}],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/9.6689b887.js b/docs/.vuepress/dist/assets/js/9.6689b887.js deleted file mode 100644 index 43672f7..0000000 --- a/docs/.vuepress/dist/assets/js/9.6689b887.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{167:function(n,w,o){}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/app.b0bd413c.js b/docs/.vuepress/dist/assets/js/app.b0bd413c.js deleted file mode 100644 index a865f41..0000000 --- a/docs/.vuepress/dist/assets/js/app.b0bd413c.js +++ /dev/null @@ -1,8 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],u=e[1],c=e[2],f=0,p=[];f0?o(r(t),9007199254740991):0}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){for(var r=n(20),o=n(28),i=n(11),a=n(3),s=n(10),u=n(18),c=n(1),l=c("iterator"),f=c("toStringTag"),p=u.Array,d={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},h=o(d),v=0;v=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e,n){"use strict";var r=n(6);t.exports=function(t,e){return!!t&&r(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,n){"use strict";var r=n(2),o=n(32)(3);r(r.P+r.F*!n(21)([].some,!0),"Array",{some:function(t){return o(this,t,arguments[1])}})},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(8).f,o=n(14),i=n(1)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(2);r(r.S+r.F,"Object",{assign:n(104)})},function(t,e,n){var r=n(80),o=n(63);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(61),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(19),o=n(28);n(83)("keys",function(){return function(t){return o(r(t))}})},function(t,e,n){"use strict";var r=n(2),o=n(32)(0),i=n(21)([].forEach,!0);r(r.P+r.F*!i,"Array",{forEach:function(t){return o(this,t,arguments[1])}})},function(t,e,n){var r=n(9),o=n(61),i=n(19),a=n(15),s=n(112);t.exports=function(t,e){var n=1==t,u=2==t,c=3==t,l=4==t,f=6==t,p=5==t||f,d=e||s;return function(e,s,h){for(var v,m,g=i(e),y=o(g),b=r(s,h,3),_=a(y.length),x=0,w=n?d(e,_):u?d(e,0):void 0;_>x;x++)if((p||x in y)&&(m=b(v=y[x],x,g),t))if(n)w[x]=m;else if(m)switch(t){case 3:return!0;case 5:return v;case 6:return x;case 2:w.push(v)}else if(l)return!1;return f?-1:c||l?l:w}}},function(t,e,n){"use strict";var r=n(2),o=n(32)(2);r(r.P+r.F*!n(21)([].filter,!0),"Array",{filter:function(t){return o(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(2),o=n(32)(1);r(r.P+r.F*!n(21)([].map,!0),"Array",{map:function(t){return o(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(5),o=n(19),i=n(15),a=n(25),s=n(68),u=n(69),c=Math.max,l=Math.min,f=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,d=/\$([$&`']|\d\d?)/g;n(71)("replace",2,function(t,e,n,h){return[function(r,o){var i=t(this),a=null==r?void 0:r[e];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},function(t,e){var o=h(n,t,this,e);if(o.done)return o.value;var f=r(t),p=String(this),d="function"==typeof e;d||(e=String(e));var m=f.global;if(m){var g=f.unicode;f.lastIndex=0}for(var y=[];;){var b=u(f,p);if(null===b)break;if(y.push(b),!m)break;""===String(b[0])&&(f.lastIndex=s(p,i(f.lastIndex),g))}for(var _,x="",w=0,k=0;k=w&&(x+=p.slice(w,$)+j,w=$+C.length)}return x+p.slice(w)}];function v(t,e,r,i,a,s){var u=r+t.length,c=i.length,l=d;return void 0!==a&&(a=o(a),l=p),n.call(s,l,function(n,o){var s;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"'":return e.slice(u);case"<":s=a[o.slice(1,-1)];break;default:var l=+o;if(0===l)return n;if(l>c){var p=f(l/10);return 0===p?n:p<=c?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):n}s=i[l-1]}return void 0===s?"":s})}})},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){var r,o; -/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress - * @license MIT */void 0===(o="function"==typeof(r=function(){var t,e,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(t,e,n){return tn?n:t}function i(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var u=n.render(!e),c=u.querySelector(r.barSelector),l=r.speed,f=r.easing;return u.offsetWidth,a(function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"}).transition="all "+e+"ms "+n,o}(t,l,f)),1===t?(s(u,{transition:"none",opacity:1}),u.offsetWidth,setTimeout(function(){s(u,{transition:"all "+l+"ms linear",opacity:0}),setTimeout(function(){n.remove(),e()},l)},l)):setTimeout(e,l)}),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout(function(){n.status&&(n.trickle(),t())},r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always(function(){0==--e?(t=0,n.done()):n.set((t-e)/t)}),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,a=e.querySelector(r.barSelector),u=t?"-100":i(n.status||0),l=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+u+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&p(o),l!=document.body&&c(l,"nprogress-custom-parent"),l.appendChild(e),e},n.remove=function(){l(document.documentElement,"nprogress-busy"),l(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&p(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var a=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),s=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(t,e){return e.toUpperCase()}),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,i=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+i)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,i=arguments;if(2==i.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,i[1],i[2])}}();function u(t,e){var n="string"==typeof t?t:f(t);return n.indexOf(" "+e+" ")>=0}function c(t,e){var n=f(t),r=n+e;u(n,e)||(t.className=r.substring(1))}function l(t,e){var n,r=f(t);u(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function f(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function p(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e){t.exports=!1},function(t,e,n){var r=n(12),o=n(1)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){var r=n(13),o=n(3),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(52)?"pure":"global",copyright:"ยฉ 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e,n){var r=n(4),o=n(3).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var r=n(9),o=n(96),i=n(97),a=n(5),s=n(15),u=n(98),c={},l={};(e=t.exports=function(t,e,n,f,p){var d,h,v,m,g=p?function(){return t}:u(t),y=r(n,f,e?2:1),b=0;if("function"!=typeof g)throw TypeError(t+" is not iterable!");if(i(g)){for(d=s(t.length);d>b;b++)if((m=e?y(a(h=t[b])[0],h[1]):y(t[b]))===c||m===l)return m}else for(v=g.call(t);!(h=v.next()).done;)if((m=o(v,y,h.value,e))===c||m===l)return m}).BREAK=c,e.RETURN=l},function(t,e,n){var r=n(11);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},function(t,e,n){"use strict";var r=n(3),o=n(8),i=n(7),a=n(1)("species");t.exports=function(t){var e=r[t];i&&e&&!e[a]&&o.f(e,a,{configurable:!0,get:function(){return this}})}},function(t,e,n){var r=n(12);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(54)("keys"),o=n(24);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(24)("meta"),o=n(4),i=n(14),a=n(8).f,s=0,u=Object.isExtensible||function(){return!0},c=!n(6)(function(){return u(Object.preventExtensions({}))}),l=function(t){a(t,r,{value:{i:"O"+ ++s,w:{}}})},f=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!u(t))return"F";if(!e)return"E";l(t)}return t[r].i},getWeak:function(t,e){if(!i(t,r)){if(!u(t))return!0;if(!e)return!1;l(t)}return t[r].w},onFreeze:function(t){return c&&f.NEED&&u(t)&&!i(t,r)&&l(t),t}}},function(t,e,n){"use strict";var r=n(52),o=n(2),i=n(11),a=n(10),s=n(18),u=n(109),c=n(26),l=n(111),f=n(1)("iterator"),p=!([].keys&&"next"in[].keys()),d=function(){return this};t.exports=function(t,e,n,h,v,m,g){u(n,e,h);var y,b,_,x=function(t){if(!p&&t in $)return $[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},w=e+" Iterator",k="values"==v,C=!1,$=t.prototype,S=$[f]||$["@@iterator"]||v&&$[v],O=S||x(v),E=v?k?x("entries"):O:void 0,A="Array"==e&&$.entries||S;if(A&&(_=l(A.call(new t)))!==Object.prototype&&_.next&&(c(_,w,!0),r||"function"==typeof _[f]||a(_,f,d)),k&&S&&"values"!==S.name&&(C=!0,O=function(){return S.call(this)}),r&&!g||!p&&!C&&$[f]||a($,f,O),s[e]=O,s[w]=d,v)if(y={values:k?O:x("values"),keys:m?O:x("keys"),entries:E},g)for(b in y)b in $||i($,b,y[b]);else o(o.P+o.F*(p||C),e,y);return y}},function(t,e,n){var r=n(8).f,o=Function.prototype,i=/^\s*function ([^ (]*)/;"name"in o||n(7)&&r(o,"name",{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},function(t,e,n){"use strict";var r=n(2),o=n(81)(!1),i=[].indexOf,a=!!i&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(a||!n(21)(i)),"Array",{indexOf:function(t){return a?i.apply(this,arguments)||0:o(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(88)(!0);t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},function(t,e,n){"use strict";var r=n(53),o=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},function(t,e,n){"use strict";var r,o,i=n(89),a=RegExp.prototype.exec,s=String.prototype.replace,u=a,c=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),l=void 0!==/()??/.exec("")[1];(c||l)&&(u=function(t){var e,n,r,o,u=this;return l&&(n=new RegExp("^"+u.source+"$(?!\\s)",i.call(u))),c&&(e=u.lastIndex),r=a.call(u,t),c&&r&&(u.lastIndex=u.global?r.index+r[0].length:e),l&&r&&r.length>1&&s.call(r[0],n,function(){for(o=1;o")}),f=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=s(t),d=!i(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)}),h=d?!i(function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[c]=function(){return n}),n[p](""),!e}):void 0;if(!d||!h||"replace"===t&&!l||"split"===t&&!f){var v=/./[p],m=n(a,p,""[t],function(t,e,n,r,o){return e.exec===u?d&&!o?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),g=m[0],y=m[1];r(String.prototype,t,g),o(RegExp.prototype,p,2==e?function(t,e){return y.call(t,this,e)}:function(t){return y.call(t,this)})}}},function(t,e,n){"use strict";var r,o,i,a,s=n(52),u=n(3),c=n(9),l=n(53),f=n(2),p=n(4),d=n(23),h=n(57),v=n(58),m=n(75),g=n(76).set,y=n(100)(),b=n(78),_=n(101),x=n(102),w=n(103),k=u.TypeError,C=u.process,$=C&&C.versions,S=$&&$.v8||"",O=u.Promise,E="process"==l(C),A=function(){},j=o=b.f,T=!!function(){try{var t=O.resolve(1),e=(t.constructor={})[n(1)("species")]=function(t){t(A,A)};return(E||"function"==typeof PromiseRejectionEvent)&&t.then(A)instanceof e&&0!==S.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(t){}}(),L=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},P=function(t,e){if(!t._n){t._n=!0;var n=t._c;y(function(){for(var r=t._v,o=1==t._s,i=0,a=function(e){var n,i,a,s=o?e.ok:e.fail,u=e.resolve,c=e.reject,l=e.domain;try{s?(o||(2==t._h&&M(t),t._h=1),!0===s?n=r:(l&&l.enter(),n=s(r),l&&(l.exit(),a=!0)),n===e.promise?c(k("Promise-chain cycle")):(i=L(n))?i.call(n,u,c):u(n)):c(r)}catch(t){l&&!a&&l.exit(),c(t)}};n.length>i;)a(n[i++]);t._c=[],t._n=!1,e&&!t._h&&I(t)})}},I=function(t){g.call(u,function(){var e,n,r,o=t._v,i=R(t);if(i&&(e=_(function(){E?C.emit("unhandledRejection",o,t):(n=u.onunhandledrejection)?n({promise:t,reason:o}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",o)}),t._h=E||R(t)?2:1),t._a=void 0,i&&e.e)throw e.v})},R=function(t){return 1!==t._h&&0===(t._a||t._c).length},M=function(t){g.call(u,function(){var e;E?C.emit("rejectionHandled",t):(e=u.onrejectionhandled)&&e({promise:t,reason:t._v})})},D=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),P(e,!0))},N=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw k("Promise can't be resolved itself");(e=L(t))?y(function(){var r={_w:n,_d:!1};try{e.call(t,c(N,r,1),c(D,r,1))}catch(t){D.call(r,t)}}):(n._v=t,n._s=1,P(n,!1))}catch(t){D.call({_w:n,_d:!1},t)}}};T||(O=function(t){h(this,O,"Promise","_h"),d(t),r.call(this);try{t(c(N,this,1),c(D,this,1))}catch(t){D.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(59)(O.prototype,{then:function(t,e){var n=j(m(this,O));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=E?C.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&P(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=c(N,t,1),this.reject=c(D,t,1)},b.f=j=function(t){return t===O||t===a?new i(t):o(t)}),f(f.G+f.W+f.F*!T,{Promise:O}),n(26)(O,"Promise"),n(60)("Promise"),a=n(13).Promise,f(f.S+f.F*!T,"Promise",{reject:function(t){var e=j(this);return(0,e.reject)(t),e.promise}}),f(f.S+f.F*(s||!T),"Promise",{resolve:function(t){return w(s&&this===a?O:this,t)}}),f(f.S+f.F*!(T&&n(79)(function(t){O.all(t).catch(A)})),"Promise",{all:function(t){var e=this,n=j(e),r=n.resolve,o=n.reject,i=_(function(){var n=[],i=0,a=1;v(t,!1,function(t){var s=i++,u=!1;n.push(void 0),a++,e.resolve(t).then(function(t){u||(u=!0,n[s]=t,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=j(e),r=n.reject,o=_(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},function(t,e,n){t.exports=!n(7)&&!n(6)(function(){return 7!=Object.defineProperty(n(55)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(4);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(5),o=n(23),i=n(1)("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},function(t,e,n){var r,o,i,a=n(9),s=n(99),u=n(77),c=n(55),l=n(3),f=l.process,p=l.setImmediate,d=l.clearImmediate,h=l.MessageChannel,v=l.Dispatch,m=0,g={},y=function(){var t=+this;if(g.hasOwnProperty(t)){var e=g[t];delete g[t],e()}},b=function(t){y.call(t.data)};p&&d||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return g[++m]=function(){s("function"==typeof t?t:Function(t),e)},r(m),m},d=function(t){delete g[t]},"process"==n(12)(f)?r=function(t){f.nextTick(a(y,t,1))}:v&&v.now?r=function(t){v.now(a(y,t,1))}:h?(i=(o=new h).port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",b,!1)):r="onreadystatechange"in c("script")?function(t){u.appendChild(c("script")).onreadystatechange=function(){u.removeChild(this),y.call(t)}}:function(t){setTimeout(a(y,t,1),0)}),t.exports={set:p,clear:d}},function(t,e,n){var r=n(3).document;t.exports=r&&r.documentElement},function(t,e,n){"use strict";var r=n(23);function o(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}t.exports.f=function(t){return new o(t)}},function(t,e,n){var r=n(1)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},t(i)}catch(t){}return n}},function(t,e,n){var r=n(14),o=n(29),i=n(81)(!1),a=n(62)("IE_PROTO");t.exports=function(t,e){var n,s=o(t),u=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);for(;e.length>u;)r(s,n=e[u++])&&(~i(c,n)||c.push(n));return c}},function(t,e,n){var r=n(29),o=n(15),i=n(105);t.exports=function(t){return function(e,n,a){var s,u=r(e),c=o(u.length),l=i(a,c);if(t&&n!=n){for(;c>l;)if((s=u[l++])!=s)return!0}else for(;c>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(2),o=n(13),i=n(6);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(5),o=n(110),i=n(63),a=n(62)("IE_PROTO"),s=function(){},u=function(){var t,e=n(55)("iframe"),r=i.length;for(e.style.display="none",n(77).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write(" - - diff --git a/docs/.vuepress/dist/guide/index.html b/docs/.vuepress/dist/guide/index.html deleted file mode 100644 index f0bf52d..0000000 --- a/docs/.vuepress/dist/guide/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - Introduction | Seed ๐ŸŒฑ - - - - - - - -

Introduction

This vue-cli 3 template is targeted towards single page applications with state management. In order to fully enjoy working with this template, please read these documentations :

- - - diff --git a/docs/.vuepress/dist/guide/installation.html b/docs/.vuepress/dist/guide/installation.html deleted file mode 100644 index 2924811..0000000 --- a/docs/.vuepress/dist/guide/installation.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - Installation | Seed ๐ŸŒฑ - - - - - - - -

Installation

Node Version Requirement

Vue CLI requires Node.js version 8.9 or above (8.11.0+ recommended). You can manage multiple versions of Node on the same machine with nvm or nvm-windows.

Vue-cli

First, you need to install vue-cli package :

npm install -g @vue/cli
-# OR
-yarn global add @vue/cli
-

You can check you have the right version (3.x) with this command:

vue --version
-

Environmment settings

Create .env file by running :

$ cp .env.dist .env
-

Install dependencies

$ yarn install
-
- - - diff --git a/docs/.vuepress/dist/guide/structure.html b/docs/.vuepress/dist/guide/structure.html deleted file mode 100644 index 414fe50..0000000 --- a/docs/.vuepress/dist/guide/structure.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - Project structure | Seed ๐ŸŒฑ - - - - - - - -

Project structure

Please read Vue.js style guide.

Tree

.
-โ”œโ”€โ”€ locales/             # translations JSON files
-โ”‚   โ””โ”€โ”€ ...
-โ”œโ”€โ”€ public/              # public folder
-โ”‚ย ย  โ”œโ”€โ”€ favicon.ico
-โ”‚   โ””โ”€โ”€ index.html    
-โ”œโ”€โ”€ settings/            # application settings
-โ”‚ย ย  โ””โ”€โ”€ default.json
-โ”œโ”€โ”€ src/
-โ”‚ย ย  โ”œโ”€โ”€ assets/          # assets (images, styles, ...)
-โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...
-โ”‚ย ย  โ”œโ”€โ”€ components/      # ui components
-โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...
-โ”‚ย ย  โ”œโ”€โ”€ data/            # app datas
-โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...
-โ”‚ย ย  โ”œโ”€โ”€ lib/
-โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ locales/     # i18n from locales JSON files
-โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ index.js
-โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ router/      # router with routes
-โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ index.js
-โ”‚ย ย  โ”‚ย ย  โ”‚ย   โ””โ”€โ”€ routes.js
-โ”‚   โ”‚   โ””โ”€โ”€ store /      # store (with state, mutations and actions)
-โ”‚ย ย  โ”‚ย ย   ย ย  โ””โ”€โ”€ index.js
-โ”‚ย ย  โ”œโ”€โ”€ transitions/     # vue transitions
-โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...
-โ”‚ย ย  โ”œโ”€โ”€ utils/           # somes utils js files
-โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...
-โ”‚ย ย  โ”œโ”€โ”€ views/           # views components
-โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ ...
-โ”‚ย ย  โ”œโ”€โ”€ main.js          # app entry file
-โ”‚ย ย  โ”œโ”€โ”€ App.vue          # main app component
-โ”œโ”€โ”€ tests/               # unit and e2e tests
-โ”‚   โ””โ”€โ”€ ...
-โ”œโ”€โ”€ .env.dist            # environnements settings
-โ””โ”€โ”€ package.json         # build scripts and dependencies
-

Environments settings

Setting your environnements variables using dotenv.

If you have to set protected data (like API token), or custom keys depending environnements, using these settings.

For getting variables from Vue components, prefix your variables by VUE_APP_ (example VUE_APP_SEED_KEY).

Application settings

A settings folder on root project for easily updating your project configuration.

It's simple configuration, example, default languague, default theme, etc.

Locales

A locales folder on root project, regrouping all translations in differents languages in JSON format.

- - - diff --git a/docs/.vuepress/dist/guide/why.html b/docs/.vuepress/dist/guide/why.html deleted file mode 100644 index 2bb1401..0000000 --- a/docs/.vuepress/dist/guide/why.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - Why ? | Seed ๐ŸŒฑ - - - - - - - -

Why ?

Vue-cli plugin allows to create a project with different features (Babel, TypeScript, linter, formatter, unit and E2E testing, etc) but with a default structure.

Seed proposes a project stucture adapted for developpers and others.

- - - diff --git a/docs/.vuepress/dist/index.html b/docs/.vuepress/dist/index.html deleted file mode 100644 index 3630273..0000000 --- a/docs/.vuepress/dist/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - Seed ๐ŸŒฑ - - - - - - - -

Seed ๐ŸŒฑ

- A vue-cli 3 template who plants the first seed of your project in order to become a sturdy and flowering tree -

Get Started โ†’

- - - From 39f2427d236ebbe4697b1c7699fec70fc2cf8ce8 Mon Sep 17 00:00:00 2001 From: Pierre Charles Date: Sun, 3 Mar 2019 17:15:17 +0100 Subject: [PATCH 11/12] :wrench: Ignoring vuepress dist folder --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 07e6e47..8873c0d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /node_modules +/docs/.vuepress/dist From 04bc1a1d7e48861a26dbb85de06f806605735c9f Mon Sep 17 00:00:00 2001 From: Pierre Charles Date: Sun, 3 Mar 2019 17:18:01 +0100 Subject: [PATCH 12/12] :wrench: Updating base url for vuepress --- docs/.vuepress/config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 8da1376..bbeb2fc 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -1,5 +1,6 @@ module.exports = { title: 'Seed ๐ŸŒฑ', + base: '/seed/', description: 'A vue-cli 3 template who plants the first seed of your project in order to become a sturdy and flowering tree', themeConfig: { repo: 'pierrechls/seed',