Skip to content

Latest commit

 

History

History
99 lines (73 loc) · 4.82 KB

README.md

File metadata and controls

99 lines (73 loc) · 4.82 KB

DEPRECATED

Just like the upstream template, this Vue 2.x helper was deprecated in favor of the Vue 3.x CLI (which will soon be replaced by a Vite scaffolder).

I don't know much about Vue 3, but Vue 2 got me much deeper into web development. Both Vue 2 and this template were a joy to work with, so it's with a heavy heart that I say (a belated) goodbye to this workflow! 💚

vue-webpack-template-plus

Vue's official webpack template + Vuex + Element + Pug + Sass + Yarn

This gives you 4 additional vue-cli options:

A full-featured Webpack setup with hot-reload, lint-on-save, unit testing & css extraction.

This template is Vue 2.0 compatible. For Vue 1.x you can try this command: vue init JanCVanB/vue-webpack-template-plus#1.0 my-project (However, I'm not testing this fork with Vue 1.x, so use at your own risk.)

Why use Vuex, Element, Pug, Sass, and/or Yarn?

These tools make Vue app development easier:

  • Vuex manages complex app state in an amazingly simple way
    • This template includes... Vuex dependencies and a "Hello world" Vuex store
    • So you can immediately... dispatch actions and commit mutations
  • Element provides useful and good-looking UI components
    • This template includes... Element dependencies and the default Element theme files
    • So you can immediately... use Element components like <el-date-picker>
  • Pug makes template tags more readable
    • This template includes... Pug dependencies
    • So you can immediately... use Pug in Vue component template tags with <template lang="pug">
  • Sass makes style tags more readable
    • This template includes... Sass dependencies
    • So you can immediately... use Sass in Vue component style tags with <style lang="sass">
  • Yarn prevents a lot of versioning problems
    • This template includes... instructions for how to use yarn instead of npm install
    • So you can immediately... lock down your project dependencies with specific version numbers

Documentation

  • For Vue's official webpack template: common questions specific to this template are answered and each part is described in greater detail
  • For Vue 2.0: general information about how to work with Vue, not specific to this template

Usage

This is a project template for vue-cli. It is recommended to use npm 3+ for a more efficient dependency tree.

$ npm install -g vue-cli
$ vue init JanCVanB/vue-webpack-template-plus my-project
$ cd my-project
$ yarn
$ npm run dev

The development server will run on port 8080 by default. If that port is already in use on your machine, the next free port will be used.

What's Included

  • npm run dev: first-in-class development experience.

    • Webpack + vue-loader for single file Vue components.
    • State preserving hot-reload
    • State preserving compilation error overlay
    • Lint-on-save with ESLint
    • Source maps
  • npm run build: Production ready build.

    • JavaScript minified with UglifyJS.
    • HTML minified with html-minifier.
    • CSS across all components extracted into a single file and minified with cssnano.
    • Static assets compiled with version hashes for efficient long-term caching, and an auto-generated production index.html with proper URLs to these generated assets.
    • Use npm run build --reportto build with bundle size analytics.
  • npm run unit: Unit tests run in JSDOM with Jest, or in PhantomJS with Karma + Mocha + karma-webpack.

    • Supports ES2015+ in test files.
    • Easy mocking.
  • npm run e2e: End-to-end tests with Nightwatch.

    • Run tests in multiple browsers in parallel.
    • Works with one command out of the box:
      • Selenium and chromedriver dependencies automatically handled.
      • Automatically spawns the Selenium server.
  • npm run theme: Regenerate Element component styles in theme/ from element-variables.css

    • See element-theme documentation: here

Fork It And Make Your Own

You can fork this repo to create your own boilerplate, and use it with vue-cli:

vue init GitHubUsername/repo my-project