DEV Community

Loftie Ellis
Loftie Ellis

Posted on • Edited on • Originally published at loftie.com

3 1

Deploying Vue with Netlify, from scratch

Deploying Vue with Netlify, from scratch

Netlify is a great platform for vue apps. You can simply do a git push, and they will automatically build and deploy it for you. They also have a great free tier available.

Deploying Vue on Netlify is mostly straightforward:

1: Create the Vue app

For this example I’m going to use Vue CLI, so make sure have that installed.

vue create vue-sample
Enter fullscreen mode Exit fullscreen mode

I chose the default settings and used npm as package manager.
After it was created you can run the sample with

cd vue-sample
npm run serve
Enter fullscreen mode Exit fullscreen mode

2: Connect with Netlify

Netlify can deploy from Github, Bitbucket or GitLab, so push your code to one of those. Then its time to create a new site with Netlify:

Add a new site in Netlify

Choose your repo, then continue to the main settings:

The build command is what Netify will run after code is pushed. npm run build will put the generate files under the dist/ folder, so we tell Netlify to publish that directory.

At this point your site will be live, and even better a new version will automatically be deployed every time to push to master! There are some last steps though to get everything working.

3: Setup redirect rules

While the homepage works nicely, at the moment going directly to any inner page will result in a 404. To fix this lets first create a route to see the issue:

vue add router
Enter fullscreen mode Exit fullscreen mode

Choose history mode to have nice looking urls such as /about

Commit and push these changes to master, and Netlify will deploy the new version automatically. You should see an About link at the top of your site:

/about

If you refresh the page directly though you currently get an 404.

/about if you go there directly

To fix we need to setup custom rewrite rule. Create a file named _redirects under the public/ folder with the following contents:

/*    /index.html   200
Enter fullscreen mode Exit fullscreen mode

This will effectively serve the index.html for any route under your site. Putting it in the public/directory means it will end up in dist/ after npm run build, which is what we want.

Now push this to master and you are done!

Originally posted at https://loftie.com/post/deploying-vue-with-netlify-from-scratch

SurveyJS custom survey software

Build Your Own Forms without Manual Coding

SurveyJS UI libraries let you build a JSON-based form management system that integrates with any backend, giving you full control over your data with no user limits. Includes support for custom question types, skip logic, an integrated CSS editor, PDF export, real-time analytics, and more.

Learn more

Top comments (0)

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay