Setup New Vue Webpack Project With Bulma
Front End, JS, JavaScript, Vue, Webpack
How to set up a new Vue project with Webpack and Bulma using the Vue CLI.
Vue CLI
Vue CLI is a simple yet powerful CLI that you can use to scaffold Vue projects.
Install Vue CLI Globally:
# Using Yarn
yarn global add vue-cli
# Using NPM
npm install -g vue-cliYou can now use the Vue CLI to scaffold projects. There are a number of templates available, but this article focuses on Webpack.
Scaffold a Project
To scaffold a Vue project with the Webpack template:
# Move into a suitable location
cd /var/www/html
# Scaffold a Vue/Webpack project into /var/www/html/new-project.dev
vue init webpack new-project.devInstall Dependencies
Move into the new project directory and install the base dependencies:
# Using yarn:
yarn install
# Using NPM:
npm installAdd Dependencies
Add Bulma:
# Using Yarn
yarn add bulma
# Using NPM:
npm install bulma
# To add multiple packages with Yarn, separate with a space. e.g.:
yarn add axios bulmaRun Dev server
# Using Yarn
yarn dev
# Using NPM
npm run devConnect Up Bulma
Add a suitable SASS manifest file that you’ll use to import all your SASS modules:
# From project root:
touch src/assets/sass/main.scssOpen this file and import the main Bulma Sass file:
// src/assets/sass/main.scss
@import '~bulma/bulma'Note that the tilde symbol refers Webpack/sass-loader to the node_modules directory.
You then need to reference this in Webpack’s main entry point, src/main.js:
// src/main.js
import Vue from 'vue';
import App from './App';
import router from './router';
// Require the main Sass manifest file
require('./assets/sass/main.scss');
Vue.config.productionTip = false;
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
template: '<App/>',
components: { App },
});Bulma Sass - Additional Dependencies
Note that to compile Sass, Webpack needs the node-sass node module and the Webpack sass-loader module.
Add these to your project dependencies:
yarn add node-sass sass-loaderYou can now run yarn dev to build your development server.
Problem With Ubuntu Snap-Installed Atom (code editor) and Webpack Server
You may experience problems because xdg-open does not run properly when launched within Atom (i.e. in platformio-ide-terminal) when Atom has been installed by means of a Ubuntu snap. This is because there is a GTK+ 2.x and GTK+ 3 conflict.
To resolve this, you can manually specify the browser to be used when the Webpack server is triggered. Amend build/dev-server.js by passing in a preferred browser as a second parameter into the call to node-opn:
devMiddleware.waitUntilValid(() => {
console.log('> Listening at ' + uri + '\n')
// when env is testing, don't need open it
if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
// Set the browser here!
opn(uri, {app: 'firefox-developer'})
}
_resolve()
})comments powered by Disqus