From 81d264fceee2069f60121274461ead07427d0626 Mon Sep 17 00:00:00 2001 From: v-prusakov Date: Mon, 22 Jan 2018 23:49:09 +0300 Subject: [PATCH] start --- .editorconfig | 21 +++++++++ .gitignore | 6 +++ README.md | 18 ++++++++ app/components/home/home.vue | 38 ++++++++++++++++ app/favicon.ico | Bin 0 -> 766 bytes app/index.ejs | 22 ++++++++++ app/index.js | 10 +++++ app/outdated-browser.png | Bin 0 -> 22537 bytes app/routes/index.js | 11 +++++ app/store/index.js | 16 +++++++ package.json | 37 ++++++++++++++++ webpack.config.js | 83 +++++++++++++++++++++++++++++++++++ 12 files changed, 262 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 README.md create mode 100644 app/components/home/home.vue create mode 100644 app/favicon.ico create mode 100644 app/index.ejs create mode 100644 app/index.js create mode 100644 app/outdated-browser.png create mode 100644 app/routes/index.js create mode 100644 app/store/index.js create mode 100644 package.json create mode 100644 webpack.config.js diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..8a79f46 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,21 @@ +# editorconfig.org + +root = true + +[*] +charset = utf-8 +indent_size = 4 +indent_style = tab +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.sass] +indent_size = 2 +indent_style = space + +[*.json] +indent_size = 2 +indent_style = space diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b918c17 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +node_modules +.sass-cache +.DS_Store +dist +yarn.lock +npm-debug.log diff --git a/README.md b/README.md new file mode 100644 index 0000000..e359810 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# Clean project-stub + +- Boilerplate HTML sctructure +- Components +- Dev server +- Hot Module Replacement +- Sass +- Postcss +- ES2015 + +Requires Yarn + +# Quick start +``` +git clone https://github.com/TehZarathustra/boilerplate-webpack.git && cd boilerplate-webpack +yarn install +npm run start +``` diff --git a/app/components/home/home.vue b/app/components/home/home.vue new file mode 100644 index 0000000..1e7fcc6 --- /dev/null +++ b/app/components/home/home.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/app/favicon.ico b/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..be74abd69ad6a32de7375df13cab9354798e328f GIT binary patch literal 766 zcmc(dze~eV5XUd2fg&jH87YDYDQKxq1{4b-_ydP-wqS9vgGh17QXQQAwOE{VaBvi* zmu^z9t({y-&1ey8Y_x;?x+`BviV9;aRjMgZ8M*!jgkRrFqSI9;F zHyfX@Az|AvVmn~YWWZP`0&JWEY~BFm?*Vq}VD7&_%x%MP$p`D`4JMC!K|B7pt?Mmp zUJAB7rxMXS6=!P+AtLU9V)J#61WPxwipRXCHO{BJ`l{m53#=t97a!znv~vfmr|AaP zRGIT7#0FyJy3Z*hL{GQp-0TRhX8UzZ)+>%?mK0^goaX4Q;x + + + + + <%= htmlWebpackPlugin.options.title %> + + + + + +
+ +
+ + diff --git a/app/index.js b/app/index.js new file mode 100644 index 0000000..57e11f1 --- /dev/null +++ b/app/index.js @@ -0,0 +1,10 @@ +import 'normalize.css'; +import Vue from 'vue'; +import router from './routes'; +import {store} from './store'; + +new Vue({ + el: '#app', + router, + store +}); diff --git a/app/outdated-browser.png b/app/outdated-browser.png new file mode 100644 index 0000000000000000000000000000000000000000..aafda2ff90bb5f01bedc27f2176fb4221d3fceb0 GIT binary patch literal 22537 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", + "license": "MIT", + "scripts": { + "build": "webpack --config webpack.config.js", + "start": "webpack-dev-server" + }, + "devDependencies": { + "autoprefixer": "^7.1.1", + "babel-core": "^6.25.0", + "babel-loader": "^7.1.1", + "babel-preset-env": "^1.5.2", + "css-loader": "^0.28.4", + "file-loader": "^0.11.2", + "html-webpack-plugin": "^2.29.0", + "node-sass": "^4.5.3", + "postcss-cssnext": "^2.11.0", + "postcss-import": "^10.0.0", + "postcss-loader": "^2.0.6", + "sass-loader": "^6.0.6", + "style-loader": "^0.18.2", + "vue-loader": "^12.2.2", + "webpack": "^3.0.0", + "webpack-dev-server": "^2.5.0" + }, + "dependencies": { + "lodash": "^4.17.4", + "normalize.css": "^7.0.0", + "vue": "^2.4.1", + "vue-template-compiler": "^2.4.1", + "vue-router": "^2.7.0", + "vuex": "^3.0.1" + } +} diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..a2f1d21 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,83 @@ +var path = require('path'); +var HtmlWebpackPlugin = require('html-webpack-plugin'); +var webpack = require('webpack'); + +module.exports = { + entry: './app/index.js', + output: { + filename: 'bundle.js', + path: path.resolve(__dirname, './dist') + }, + resolve: { + alias: { + vue: 'vue/dist/vue.js' + } + }, + plugins: [ + new HtmlWebpackPlugin({ + title: 'title', + template: './app/index.ejs' + }), + + new webpack.ProvidePlugin({ + $: "jquery", + jQuery: "jquery", + "window.jQuery": "jquery" + }), + + new webpack.HotModuleReplacementPlugin() + ], + devServer: { + hot: true, + contentBase: path.resolve(__dirname, './dist'), + }, + module: { + rules: [ + { + test: /\.vue$/, + loader: 'vue-loader', + options: { + loaders: { + js: 'babel-loader', + scss: 'css!sass' + }, + postcss: [require('postcss-cssnext')()], + } + }, + { + test: /\.js$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader', + options: { + presets: ['env'] + } + } + }, + { + test: /\.(css|sass)$/, + use: [ + 'style-loader', + {loader: 'css-loader', options: { importLoaders: 1 }}, + {loader: 'postcss-loader', options: { + plugins: function (loader) { + return [ + require('postcss-import')({ root: loader.resourcePath }), + require('postcss-cssnext')() + ] + } + }}, + 'sass-loader' + ] + }, + { + test: /\.(png|svg|jpg|gif|ico|mp4)$/, + use: ['file-loader'] + }, + { + test: /\.(woff|woff2|eot|ttf|otf)$/, + use: ['file-loader'] + } + ] + } +};