Ghost/apps/signup-form
Daniel Lockyer 53157f3c40 Disabled reporting compressed gzip size
refs https://vitejs.dev/config/build-options.html#build-reportcompressedsize

- this should make building a little bit quicker because it doesn't have
  to calculate the gzip size (I don't think we're likely to hit this
  because we don't have large projects, but it's still nice to clean up
  the output)
2023-11-15 09:11:12 +01:00
..
.storybook
assets/icons
src Enabled no-explicit-any for majority of packages 2023-07-27 16:49:08 +02:00
test Enabled no-explicit-any for majority of packages 2023-07-27 16:49:08 +02:00
.env.development
.eslintrc.cjs Enabled no-explicit-any for majority of packages 2023-07-27 16:49:08 +02:00
.yarnrc
index.html
package.json Update dependency vite-plugin-commonjs to v0.10.1 2023-11-14 15:04:56 +01:00
playwright.config.ts
postcss.config.cjs Moved signup-form to apps/ folder 2023-06-19 09:43:33 +02:00
preview.html
README.md Fixed typos (#18648) 2023-10-31 15:21:44 +00:00
tailwind.config.cjs
tsconfig.json
tsconfig.node.json
vite.config.ts Disabled reporting compressed gzip size 2023-11-15 09:11:12 +01:00

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 via Ghost yarn dev in root folder

You can automatically start the signup-form dev server when developing Ghost by running Ghost (in root folder) via yarn dev --all. This will only build the production build, without the demo site.

Running via yarn dev --all --signup or yarn dev --signup will also serve the demo site on http://localhost:6173.

Running the development version only

Run yarn dev (in package folder) 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 workaround 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
  • yarn test:e2e run e2e tests on Chromium
  • yarn test:slowmo run e2e tests visually (headed) and slower on Chromium
  • yarn test:e2e:full run e2e tests on all browsers