├── .github └── ISSUE_TEMPLATE.md ├── .gitignore ├── LICENSE ├── README.md ├── meta.js └── template ├── .editorconfig ├── .eslintrc.js ├── .gitignore ├── README.md ├── assets └── README.md ├── components ├── Logo.vue └── README.md ├── layouts ├── README.md └── default.vue ├── middleware └── README.md ├── nuxt.config.js ├── package.json ├── pages ├── README.md └── index.vue ├── plugins └── README.md ├── static ├── README.md └── icon.png └── store └── README.md /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | *.iml 3 | *.lock 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 NUXT 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PWA 2 | 3 | A [Nuxt.js](https://github.com/nuxt/nuxt.js) PWA template without the distraction of a complicated development environment. 4 | 5 | Live demo: [coming soon] 6 | 7 | **This template is still under development, feedback welcome!** 8 | 9 | ## Installation 10 | 11 | This is a project template for [vue-cli](https://github.com/vuejs/vue-cli). 12 | 13 | ``` bash 14 | $ vue init nuxt-community/pwa-template my-project 15 | $ cd my-project 16 | # install dependencies 17 | $ npm install # Or yarn install 18 | ``` 19 | 20 | > Make sure to use a version of vue-cli >= 2.1 (`vue -V`). 21 | 22 | ## Usage 23 | 24 | ### Development 25 | 26 | ``` bash 27 | # serve with hot reloading at localhost:3000 28 | $ npm run dev 29 | ``` 30 | 31 | Go to [http://localhost:3000](http://localhost:3000) 32 | 33 | ### Production 34 | 35 | ``` bash 36 | # build for production and launch the server 37 | $ npm run build 38 | $ npm start 39 | ``` 40 | 41 | ### Generate 42 | 43 | ``` bash 44 | # generate a static project 45 | $ npm run generate 46 | ``` 47 | -------------------------------------------------------------------------------- /meta.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | helpers: { 3 | raw: function(options) { 4 | return options.fn(this) 5 | } 6 | }, 7 | skipInterpolation: "**/*.vue", 8 | prompts: { 9 | name: { 10 | 'type': 'string', 11 | 'required': true, 12 | 'message': 'Project name' 13 | }, 14 | description: { 15 | 'type': 'string', 16 | 'required': false, 17 | 'message': 'Project description', 18 | 'default': 'Nuxt.js project' 19 | }, 20 | author: { 21 | 'type': 'string', 22 | 'message': 'Author' 23 | }, 24 | }, 25 | completeMessage: '{{#inPlace}}To get started:\n\n npm install # Or yarn\n npm run dev{{else}}To get started:\n\n cd {{destDirName}}\n npm install # Or yarn\n npm run dev{{/inPlace}}' 26 | }; 27 | -------------------------------------------------------------------------------- /template/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_size = 2 6 | indent_style = space 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /template/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | parser: 'babel-eslint', 4 | env: { 5 | browser: true, 6 | node: true 7 | }, 8 | extends: 'standard', 9 | // required to lint *.vue files 10 | plugins: [ 11 | 'html' 12 | ], 13 | // add your custom rules here 14 | rules: {}, 15 | globals: {} 16 | } 17 | -------------------------------------------------------------------------------- /template/.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | node_modules 3 | 4 | # logs 5 | *.log 6 | 7 | # Nuxt build 8 | .nuxt 9 | 10 | # Nuxt generate 11 | dist 12 | 13 | # Intellij idea 14 | .idea 15 | *iml 16 | 17 | # VSCode 18 | .vscode/* 19 | !.vscode/settings.json 20 | !.vscode/tasks.json 21 | !.vscode/launch.json 22 | !.vscode/extensions.json 23 | 24 | # Generated files 25 | static/manifest*.json 26 | static/sw.js 27 | static/workbox-sw*.js 28 | -------------------------------------------------------------------------------- /template/README.md: -------------------------------------------------------------------------------- 1 | # {{ name }} 2 | 3 | > {{ description }} 4 | 5 | ## Build Setup 6 | 7 | ``` bash 8 | # install dependencies 9 | $ npm install # Or yarn install 10 | 11 | # serve with hot reload at localhost:3000 12 | # service worker is disabled in dev 13 | $ npm run dev 14 | 15 | # build for production and launch server 16 | $ npm run build 17 | $ npm start 18 | 19 | # generate static project 20 | $ npm run generate 21 | ``` 22 | 23 | For detailed explanation on how things work, checkout the [Nuxt.js docs](https://github.com/nuxt/nuxt.js). 24 | -------------------------------------------------------------------------------- /template/assets/README.md: -------------------------------------------------------------------------------- 1 | # ASSETS 2 | 3 | This directory contains your un-compiled assets such as LESS, SASS, or JavaScript. 4 | 5 | More information about the usage of this directory in the documentation: 6 | https://nuxtjs.org/guide/assets#webpacked 7 | 8 | **This directory is not required, you can delete it if you don't want to use it.** 9 | -------------------------------------------------------------------------------- /template/components/Logo.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 79 | -------------------------------------------------------------------------------- /template/components/README.md: -------------------------------------------------------------------------------- 1 | # COMPONENTS 2 | 3 | The components directory contains your Vue.js Components. 4 | Nuxt.js doesn't supercharge these components. 5 | 6 | **This directory is not required, you can delete it if you don't want to use it.** 7 | -------------------------------------------------------------------------------- /template/layouts/README.md: -------------------------------------------------------------------------------- 1 | # LAYOUTS 2 | 3 | This directory contains your Application Layouts. 4 | 5 | More information about the usage of this directory in the documentation: 6 | https://nuxtjs.org/guide/views#layouts 7 | 8 | **This directory is not required, you can delete it if you don't want to use it.** 9 | -------------------------------------------------------------------------------- /template/layouts/default.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 54 | -------------------------------------------------------------------------------- /template/middleware/README.md: -------------------------------------------------------------------------------- 1 | # MIDDLEWARE 2 | 3 | This directory contains your Application Middleware. 4 | The middleware lets you define custom function to be ran before rendering a page or a group of pages (layouts). 5 | 6 | More information about the usage of this directory in the documentation: 7 | https://nuxtjs.org/guide/routing#middleware 8 | 9 | **This directory is not required, you can delete it if you don't want to use it.** 10 | -------------------------------------------------------------------------------- /template/nuxt.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | /* 3 | ** Build configuration 4 | */ 5 | build: {}, 6 | /* 7 | ** Headers 8 | ** Common headers are already provided by @nuxtjs/pwa preset 9 | */ 10 | head: {}, 11 | /* 12 | ** Customize the progress-bar color 13 | */ 14 | loading: { color: '#3B8070' }, 15 | /* 16 | ** Customize app manifest 17 | */ 18 | manifest: { 19 | theme_color: '#3B8070' 20 | }, 21 | /* 22 | ** Modules 23 | */ 24 | modules: [ 25 | '@nuxtjs/pwa' 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /template/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "{{ name }}", 3 | "version": "1.0.0", 4 | "description": "{{ description }}", 5 | "author": "{{ author }}", 6 | "private": true, 7 | "dependencies": { 8 | "nuxt": "latest", 9 | "@nuxtjs/pwa": "latest" 10 | }, 11 | "scripts": { 12 | "dev": "nuxt", 13 | "build": "nuxt build", 14 | "start": "nuxt start", 15 | "generate": "nuxt generate", 16 | "lint": "eslint --ext .js,.vue --ignore-path .gitignore .", 17 | "precommit": "npm run lint" 18 | }, 19 | "devDependencies": { 20 | "babel-eslint": "^7.1.1", 21 | "eslint": "^3.15.0", 22 | "eslint-config-standard": "^6.2.1", 23 | "eslint-loader": "^1.6.1", 24 | "eslint-plugin-html": "^2.0.0", 25 | "eslint-plugin-promise": "^3.4.1", 26 | "eslint-plugin-standard": "^2.0.1" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /template/pages/README.md: -------------------------------------------------------------------------------- 1 | # PAGES 2 | 3 | This directory contains your Application Views and Routes. 4 | The framework reads all the .vue files inside this directory and create the router of your application. 5 | 6 | More information about the usage of this directory in the documentation: 7 | https://nuxtjs.org/guide/routing 8 | -------------------------------------------------------------------------------- /template/pages/index.vue: -------------------------------------------------------------------------------- 1 | 22 | 23 | 53 | 54 | 102 | -------------------------------------------------------------------------------- /template/plugins/README.md: -------------------------------------------------------------------------------- 1 | # PLUGINS 2 | 3 | This directory contains your Javascript plugins that you want to run before instantiating the root vue.js application. 4 | 5 | More information about the usage of this directory in the documentation: 6 | https://nuxtjs.org/guide/plugins 7 | 8 | **This directory is not required, you can delete it if you don't want to use it.** 9 | -------------------------------------------------------------------------------- /template/static/README.md: -------------------------------------------------------------------------------- 1 | # STATIC 2 | 3 | This directory contains your static files. 4 | Each file inside this directory is mapped to /. 5 | 6 | Example: /static/robots.txt is mapped as /robots.txt. 7 | 8 | More information about the usage of this directory in the documentation: 9 | https://nuxtjs.org/guide/assets#static 10 | 11 | **This directory is not required, you can delete it if you don't want to use it.** 12 | -------------------------------------------------------------------------------- /template/static/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt-community/pwa-template/1421b7a1822ab4b3975d8faa8ef544ee9ca4bcce/template/static/icon.png -------------------------------------------------------------------------------- /template/store/README.md: -------------------------------------------------------------------------------- 1 | # STORE 2 | 3 | This directory contains your Vuex Store files. 4 | Vuex Store option is implemented in the Nuxt.js framework. 5 | Creating a index.js file in this directory activate the option in the framework automatically. 6 | 7 | More information about the usage of this directory in the documentation: 8 | https://nuxtjs.org/guide/vuex-store 9 | 10 | **This directory is not required, you can delete it if you don't want to use it.** 11 | --------------------------------------------------------------------------------