JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 17
  • Score
    100M100P100Q53396F
  • License ISC

A lightweight wrapper around clasp for managing Google Apps Script projects

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/hug

    Or clone this repo and link it:

    git clone <repo-url> && cd hug
    npm install && npm link

    Already 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 login

    Commands

    Create a new project

    hug init my-app                         # blank project
    hug init --template webapp my-app       # webapp with doGet + index.html

    This creates the directory, copies template files, installs clasp, and creates the Apps Script project.

    Import an existing project

    hug init --scriptId <scriptId> my-project

    Imports an existing Apps Script project into a new directory and sets up npm/clasp.

    Fork a project

    hug fork

    Creates 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 value

    Manages 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 editor

    Deploy

    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 deployments

    Templates

    • blank — minimal appsscript.json + empty Code.js
    • webappdoGet() serving an index.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