Book Image

Vue.js 2 and Bootstrap 4 Web Development

Book Image

Vue.js 2 and Bootstrap 4 Web Development

Overview of this book

In this book, we will build a full stack web application right from scratch up to its deployment. We will start by building a small introduction application and then proceed to the creation of a fully functional, dynamic responsive web application called ProFitOro. In this application, we will build a Pomodoro timer combined with office workouts. Besides the Pomodoro timer and ProFitOro workouts will enable authentication and collaborative content management. We will explore topics such as Vue reactive data binding, reusable components, routing, and Vuex store along with its state, actions, mutations, and getters. We will create Vue applications using both webpack and Nuxt.js templates while exploring cool hot Nuxt.js features such as code splitting and server-side rendering. We will use Jest to test this application, and we will even revive some trigonometry from our secondary school! While developing the app, you will go through the new grid system of Bootstrap 4 along with Vue.js’ directives. We will connect Vuex store to the Firebase real-time database, data storage, and authentication APIs and use this data later inside the application’s reactive components. Finally, we will quickly deploy our application using the Firebase hosting mechanism.
Table of Contents (19 chapters)
Vue.js 2 and Bootstrap 4 Web Development
About the Author
About the Reviewer
Customer Feedback

Making Jest work with Vuex, Nuxt.js, Firebase, and Vue components

It's not the easiest task to test Vue components that rely on the Vuex store and Nuxt.js. We have to prepare several things.

First of all, we must install jest-vue-preprocessor in order to tell Jest that Vue components files are valid. We must also install babel-preset-stage-2, otherwise Jest will complain about the ES6 spread operator. Run the following command:

npm install --save-dev jest-vue-preprocessor babel-preset-stage-2

Once the dependencies are installed, add the stage-2 entry to the .babelrc file:

// .babelrc
  "presets": ["es2015", "stage-2"]

Now we need to tell Jest that it should use the babel-jest transformer for the regular JavaScript files and the jest-vue-transformer for the Vue files. In order to do so, add the following to the jest entry in the package.json file:

// package.json
"jest": {
    "transform": {
      "^.+\\.js$": "<rootDir>/node_modules/babel-jest",
      ".*\\.(vue)$": "<rootDir&gt...