Ghost/ghost/signup-form
Simon Backx 8fd2468995 Added testable production build for signup-form
fixes https://github.com/TryGhost/Team/issues/3297

This adds a new preview page to test the signup-form script as a production build, instead of using ESM.
2023-05-24 11:41:12 +02:00
..
.storybook
src Added testable production build for signup-form 2023-05-24 11:41:12 +02:00
test
.env.development Fixed default Ghost url in dev environment 2023-05-23 17:11:04 +02:00
.eslintrc.cjs
.yarnrc
index.html Added testable production build for signup-form 2023-05-24 11:41:12 +02:00
package.json Added testable production build for signup-form 2023-05-24 11:41:12 +02:00
postcss.config.cjs
preview.html Added testable production build for signup-form 2023-05-24 11:41:12 +02:00
README.md Added testable production build for signup-form 2023-05-24 11:41:12 +02:00
tailwind.config.cjs
tsconfig.json
tsconfig.node.json
vite.config.ts

Embeddable Signup Form

Embed a Ghost signup form on any site.

Development

Pre-requisites

  • Run yarn in Ghost monorepo root
  • Run yarn in this directory

Running the development version

Run yarn dev to start the development server to test/develop the form standalone.

Using the UMD build during development

Vite by default only supports HRM with an ESM output. But when loading a script on a site as a ESM module (<script type="module" src="...">), you don't have access to document.currentScript inside the script, which is required to determine the location to inject the iframe. In development mode we use a workaround for this to make the ESM HMR work. But this workaroudn is not suitable for production.

To test the real production behaviour without this hack, you can use http://localhost:6173/preview.html. This HTML page will use http://localhost:6174/signup-form.min.js directly.

Develop

This is a monorepo package.

Follow the instructions for the top-level repo.

  1. git clone this repo & cd into it as usual
  2. Run yarn to install top-level dependencies.

Test

  • yarn lint run just eslint
  • yarn test run lint and tests