├── .babelrc
├── .gitignore
├── Components
├── MenuPlan.vue
├── RecipeData.vue
└── Recipes.vue
├── Dockerfile
├── README.md
├── docker-compose.yml
├── index.html
├── package-lock.json
├── package.json
├── src
├── App.vue
└── main.js
└── webpack.config.js
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", { "modules": false }]
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log
5 | yarn-error.log
6 |
7 | # Editor directories and files
8 | .idea
9 | *.suo
10 | *.ntvs*
11 | *.njsproj
12 | *.sln
13 |
--------------------------------------------------------------------------------
/Components/MenuPlan.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Menu Plan
4 |
5 |
6 |
7 |
8 |
10 |
11 | {{ capLetter(key) }}
12 |
13 |
14 |
15 |
16 | {{ recipe[0].title }}
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
72 |
73 |
--------------------------------------------------------------------------------
/Components/RecipeData.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
19 |
--------------------------------------------------------------------------------
/Components/Recipes.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 | add
7 |
8 |
9 | New Recipe
10 |
15 | Add Recipe
16 |
17 |
18 |
Recipes
19 |
20 |
21 |
22 |
24 |
25 |
26 | {{ recipe.title }}
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
102 |
103 |
106 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM node:9
2 |
3 | WORKDIR /usr/app
4 |
5 | COPY ./package.json .
6 | RUN npm install --quiet
7 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # vue-recipes
2 |
3 | > A Vue.js project
4 |
5 | ## Build Setup
6 |
7 | ##### With docker
8 |
9 | ```bash
10 | docker-compose up
11 |
12 | docker-compose down
13 | ```
14 |
15 | ##### With npm
16 |
17 | ``` bash
18 | # install dependencies
19 | npm install
20 |
21 | # serve with hot reload at localhost:8080
22 | npm run dev
23 |
24 | # build for production with minification
25 | npm run build
26 | ```
27 |
28 | For detailed explanation on how things work, consult the [docs for vue-loader](http://vuejs.github.io/vue-loader).
29 |
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2"
2 | services:
3 | node:
4 | build: ./
5 | command: npm run docker
6 | volumes:
7 | - .:/usr/app/
8 | - ./node_modules:/usr/app/node_modules
9 | ports:
10 | - "80:80"
11 | environment:
12 | - NODE_ENV=production
13 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | vue-recipes
6 |
7 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-recipes",
3 | "description": "A Vue.js project",
4 | "version": "1.0.0",
5 | "author": "John P ",
6 | "private": true,
7 | "scripts": {
8 | "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
9 | "docker": "cross-env NODE_ENV=development webpack-dev-server --hot --host 0.0.0.0 --port 80",
10 | "build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
11 | },
12 | "dependencies": {
13 | "vue": "^2.4.4",
14 | "vuedraggable": "^2.14.1",
15 | "vuetify": "^1.1.4"
16 | },
17 | "devDependencies": {
18 | "babel-core": "^6.26.0",
19 | "babel-loader": "^7.1.2",
20 | "babel-preset-env": "^1.6.0",
21 | "cross-env": "^5.2.0",
22 | "css-loader": "^0.28.7",
23 | "file-loader": "^1.1.4",
24 | "vue-loader": "^13.0.5",
25 | "vue-template-compiler": "^2.4.4",
26 | "webpack": "^3.6.0",
27 | "webpack-dev-server": "^2.9.1"
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 | home
12 |
13 |
14 | Home
15 |
16 |
17 |
18 |
19 | contact_mail
20 |
21 |
22 | Contact
23 |
24 |
25 |
26 |
27 |
28 |
29 | Recipes
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
41 |
42 |
43 |
44 |
45 |
46 | © 2017
47 |
48 |
49 |
50 |
51 |
70 |
71 |
82 |
83 |
84 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuetify from 'vuetify'
3 | import draggable from 'vuedraggable'
4 |
5 | Vue.use(Vuetify)
6 | import App from './App.vue'
7 |
8 | export const eventBus = new Vue();
9 |
10 | new Vue({
11 | el: '#app',
12 | render: h => h(App)
13 | })
14 |
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var webpack = require('webpack')
3 |
4 | module.exports = {
5 | entry: './src/main.js',
6 | output: {
7 | path: path.resolve(__dirname, './dist'),
8 | publicPath: '/dist/',
9 | filename: 'build.js'
10 | },
11 | module: {
12 | rules: [
13 | {
14 | test: /\.vue$/,
15 | loader: 'vue-loader',
16 | options: {
17 | loaders: {
18 | }
19 | // other vue-loader options go here
20 | }
21 | },
22 | {
23 | test: /\.js$/,
24 | loader: 'babel-loader',
25 | exclude: /node_modules/
26 | },
27 | {
28 | test: /\.(png|jpg|gif|svg)$/,
29 | loader: 'file-loader',
30 | options: {
31 | name: '[name].[ext]?[hash]'
32 | }
33 | }
34 | ]
35 | },
36 | resolve: {
37 | alias: {
38 | 'vue$': 'vue/dist/vue.esm.js'
39 | }
40 | },
41 | devServer: {
42 | historyApiFallback: true,
43 | noInfo: true,
44 | overlay: true
45 | },
46 | performance: {
47 | hints: false
48 | },
49 | devtool: '#eval-source-map'
50 | }
51 |
52 | if (process.env.NODE_ENV === 'production') {
53 | module.exports.devtool = '#source-map'
54 | // http://vue-loader.vuejs.org/en/workflow/production.html
55 | module.exports.plugins = (module.exports.plugins || []).concat([
56 | new webpack.DefinePlugin({
57 | 'process.env': {
58 | NODE_ENV: '"production"'
59 | }
60 | }),
61 | new webpack.optimize.UglifyJsPlugin({
62 | sourceMap: true,
63 | compress: {
64 | warnings: false
65 | }
66 | }),
67 | new webpack.LoaderOptionsPlugin({
68 | minimize: true
69 | })
70 | ])
71 | }
72 |
--------------------------------------------------------------------------------