Test using vue-cli configured to hold multiple distinct websites with their own public folder and entry points.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.4 KiB

Vue CLI Multisite Base Example

Just some stuff I hacked together to get a vue-cli created app to support multiple sites. Key things to look at compared to a base vue create <app> site:

  • package.json:
    • Customizes the npm run build commands to support multiple sites, an “admin” and a “main” site. Each one has a custom dist/ output folder (--dest option) and a custom entry point (e.g. “./src/admin/index.js” instead of default “./src/main.js”)
  • vue.config.js:
    • This file needs to be added to a Vue project, as it’s not there by default. It configures the html-webpack-plugin to change the name of the “public” folder that gets put into the dist/ folder; so each site can have its own public folder.
    • Uses environment variable SITE_NAME to choose the public folder to use.
    • custom-public/ is for the admin site and added a “hello.txt” to verify correct functionality. The main site uses the public/ folder like normal.

So when you run npm run build-admin it creates dist-admin/ taking the custom-public folder and the admin entrypoint. npm run build-main creates the dist/ folder and the normal public folder.

Project setup

npm install

Compiles and hot-reloads for development

npm run serve

Compiles and minifies for production

npm run build

Lints and fixes files

npm run lint

Customize configuration

See Configuration Reference.