A universal, modular, multi-page, full-stack Vue boilerplate to deal with huge project. Based on Node.js, Express, PM2, Lerna, Webpack, Babel, Vue.js, Element, PostCSS.
- element-uias UI utilities.
- Combines prettierandESlintin pre-commit hook usinglint-staged. Stop worrying about shit code slip into your code base.
- pm2as the production process manager.
- http-proxy-middlewarefor remote server api proxy to avoid CORS error.
- use webpack dllto improve build time performance.
- Support dynamic webpack entrythrough cli.
- lernafor managing multiple project in one project.
- postcssfor next generation css preprocessor.
- Combine development and production server in one expressserver.
- winstonas the logger system.
- Support express router customization.
- Automatically generate bundle project for deployment.
git clone https://github.com/posrix/vue-crane my-project
cd my-project
npm install
npm run devDuring the lifetime of development in a huge project. Let webpack build necessary file is much more decent rather than build the whole project. vue-crane use cli as the entrance to let user choose which module to develop.
Start a local production server with hot reload using nodemon.
$ npm install
$ npm run build
$ npm run localThere are 3 production environments in vue-crane:
- TestEnvironment
- Pre-ReleaseEnvironment
- ReleaseEnvironment
Each environment has its own startup script:
Test Environment:
$ npm run stagePre-release Environment:
$ npm run preRelease Environment:
$ npm run releasevue-crane use a bundle project called vue-crane-bundle for deployment. Everytime you want to iterate a new version, just simply execute a shell script. All stuff will be settled in your bundle project. There are three benefits of using a bundle project for deployment:
- Remain consistency of server dependencies in different environment.
- Quick roll-back to previous version while error occurred.
- Only deploy necessary files to online production server.
- 
Create a empty git repository as your bundle project. Add a remote url to any git repository hosting service. Make sure your bundle project is in the same folder level with your source project. 
- 
Edit bundle script in package.json. Three parameters are required to provide:source_project,bundle_project,release_branch.
{
  "bundle": "sh ./tasks/bundle.sh source_project bundle_project release_branch"
}- Execute bundle script.
$ npm run bundleThe MIT License (MIT). Please see License File for more information.
