Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@peterseibel/hug) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
hug
A lightweight wrapper around clasp for managing Google Apps Script projects.
Install
npm install -g @peterseibel/hugOr clone this repo and link it:
git clone <repo-url> && cd hug
npm install && npm linkAlready using clasp?
Just use hug in your existing project. There's nothing special about a hug project — any clasp project works out of the box.
Prerequisites
You need to be logged in to clasp:
npx clasp loginCommands
Create a new project
hug init my-app # blank project
hug init --template webapp my-app # webapp with doGet + index.htmlThis creates the directory, copies template files, installs clasp, and creates the Apps Script project.
Import an existing project
hug init --scriptId <scriptId> my-projectImports an existing Apps Script project into a new directory and sets up npm/clasp.
Fork a project
hug forkCreates a new Apps Script project from the current local code. Useful with git branches — fork on a branch to get a separate Apps Script project you can develop against independently.
Configure
hug config # list config values
hug config set SPREADSHEET_ID=1Bx.. # set a value
hug config set FOO=bar BAZ=qux # set multiple values
hug config unset FOO # remove a valueManages a config.js file that gets pushed with your code. Apps Script code can access values via CONFIG.SPREADSHEET_ID, etc. Useful for pointing different branches/forks at different resources.
Note: config values are stored in source. Don't put secrets here.
Push / Pull / Open
hug push # push local files to Apps Script
hug pull # pull remote files (refuses if uncommitted changes)
hug pull -f # pull even with uncommitted changes
hug open # open in the Apps Script editorDeploy
hug deploy "description of changes"Pushes code, creates a version, and updates the existing deployment (or creates one if none exists).
Roll back
hug deploy --rollback <versionNumber>List versions and deployments
hug versions
hug deploymentsTemplates
- blank — minimal
appsscript.json+ emptyCode.js - webapp —
doGet()serving anindex.html, with webapp config in the manifest
Branch-per-environment pattern
Use hug fork with git branches to maintain separate Apps Script projects:
git checkout -b staging
hug fork # new Apps Script project, updates .clasp.json
hug config set SPREADSHEET_ID=1Bx.. # point at a staging spreadsheet
hug deploy # deploys to the staging project
git checkout main # .clasp.json and config.js switch back to production