With this project your can use Vue3 with Google Sheets as a backend.
Tip
If you want to use a CSS framework like DaisyUI and tailwindcss, you can see me other repo to use it → here.
git clone https://github.com/ilias777/vue3GAS.git
cd vue3GAS
npm install
Remove the .clasp.json
file in the root directory, to create later your own .clasp.json
file with your scriptID:
rm .clasp.json
Install clasp in your system.
npm install -g @google/clasp
- Go to docs.google.com and create a Google Sheets document
- Inside the Sheets document press in the menu bar, under extensions, Apps Script
- A new tab appears with the Google Apps Script code. Copy the script ID (https://script.google.com/macros/s/{scriptID}/edit).
- Press the
Deploy
button, in the upper right corner, to create a web app.
Go to https://script.google.com/home/usersettings and turn on the Google Apps Script API.
clasp login
Clone the Sheets script with clasp in the ./gas
folder.
clasp clone --rootDir ./gas <scriptID>
Move from the ./gas
folder the .clasp.json
file to the root directory
mv ./gas/.clasp.json .
Build the project
npm run build
From here your can start build your web application, with Google Sheets as a backend.
If you are finish with your changes in your App, run npm run build
to build the project and
a index.html
are created in the ./dist
folder. Then this file is moved to the ./gas
folder
and all the files are pushed to google apps script automatically.
After the files are pushed, refresh the page of the Google Apps Script site, deploy your app again and you are done.
These are the steps to reproduce the project:
npm create vue@latest
cd <your-project-folder>
npm install
- Remove content from
./src/App.vue
.
<script setup></script>
<template>
<h1>Hello from Vue</h1>
</template>
-
Remove content from
./src/assets/main.css
and keep only the first line@import './base.css';
In yourbase.css
file you can add css styles if needed. -
Delete
./src/assets/logo.svg
file. -
Delete all folders and files from
./src/components/
folder.
npm install --save-dev vite-plugin-singlefile
import { viteSingleFile } from 'vite-plugin-singlefile'
export default defineConfig({
plugins: [vue(), viteSingleFile()]
})
Install clasp in your system, to push the files to Google Apps Script
npm install -g @google/clasp
- Go to docs.google.com and create a Google Sheets document
- Inside the Sheets document press in the menu bar, under extensions, Apps Script
- A new tab appears with the Apps Script code. Copy the scriptID.
Sing in to Google from your terminal with clasp.
clasp login
Go to https://script.google.com/home/usersettings and turn on the Google Apps Script API.
More information and the commands can you read in the clasp repo
mkdir gas
clasp clone --rootDir ./gas <scriptUrl>
mv ./gas/.clasp.json .
clasp pull
Now you have in your ./gas
folder a Code.js
file
function doGet(e) {
return HtmlService.createTemplateFromFile('index.html')
.evaluate()
.addMetaTag('viewport', 'width=device-width, initial-scale=1.0')
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)
.setTitle('Vue3 GAS')
}
clasp push
npm install --save-dev @types/google-apps-script
npm run build
Copy ./dist/index.html
file to ./gas
folder
cp ./dist/index.html ./gas
"scripts": {
"build": "vite build && mv ./dist/index.html ./gas && clasp push",
}
Every change is saved in the ./dist/index.html
file. With the command npm run build
the index.html
file is copied in the ./gas
folder and pushed to google apps script automatically.