This repository contains the frontend code for the WMDE Fundraising App.
npm run dev
This will start the development server on port 7072. In your local
development configuration for the Fundraising
Application set the key assets-path to htpp://localhost:7072/ to
redirect all asset requests to the development server.
The command
npm run build
will create the CSS, JavaScript, fonts and images inside the dist
directory. To use them with the Fundraising Application, you must copy
them into the directory web/skins/laika in the Fundraising Application
directory. You can ignore or delete the generated HTML files, they are an
unused byproduct of the build process.
By default, the production build will send errors to our error collection
service. When building for production, you must provide the API key for
the service in the environment variable VUE_APP_ERRBIT_PROJECT_KEY. Our
CI/CD system does this automatically, if you're building locally, you can
run the command like this:
VUE_APP_ERRBIT_PROJECT_KEY=<INSERT_KEY_HERE> npm run build
Put all images, fonts and other non-bundled resources into subdirectories
of the public directory. The bundler will automatically copy all
subdirectories into the dist directory. When you deploy the application,
the contents of dist will become the contents of /skins/laika.
Prefix all resources in the public directory with /skins/laika.
Example: to reference the image
public/images/logo-vertical-wikimedia.svg in CSS, use url( '/skins/laika/images/logo-vertical-will.svg' ).
The bundler will preserve all url() references as-is.
On your local development machine, you must manually keep the contents of
dist (of the fundraising-app-client project) and web/skins/laika (of
the fundraising-app project) in sync, otherwise the CSS references will be
broken.
Prefix resources in the public directory with the variable assetsPath.
Example: To show the image
public/images/logo-vertical-wikimedia.svg in Vue, use <img :src="assetsPath + '/images/logo-vertical-will.svg' )"/>.
The value of assetsPath comes from the assets-path data attribute of
the HTML "skeleton" rendered by the PHP templates.
The code in src/page_data_initializer.ts sets the variable from the HTML
attribute.
- we test for accessibility issues with a tool called https://github.com/pa11y/pa11y
- in order to run the tool:
- make sure that the fundraising app is running on your localhost
- run
npm run pallyto test the code on your current branch