暫無描述

Caleb Porzio 230fb3c11a Evaluate expression in the context of the element 3 年之前
.github ee3ec3dfec wip 3 年之前
benchmarks 25715eeb6a Add init alias initializing 3 年之前
packages 230fb3c11a Evaluate expression in the context of the element 3 年之前
scripts 5eaec91ed8 wip 3 年之前
tests 0d2237cd30 Allow dynamic transition classes 3 年之前
.editorconfig 4a1ecdbd1a Add editorconfig file 5 年之前
.gitignore c37f0b5e5c wip 3 年之前
LICENSE.md 26ffa65753 Update README.id.md & years of copyright 4 年之前
README.md eb7d8e297e wip 3 年之前
cypress.json b46c41fa24 Import V3 source 3 年之前
index.html 08870c11b4 removed head and body 3 年之前
jest.config.js b46c41fa24 Import V3 source 3 年之前
package-lock.json 879d8250e9 wip 3 年之前
package.json 1509849d9c wip 3 年之前

README.md

Alpine.js

Go to the Alpine docs for most things: Alpine Docs

Stay here for contribution-related information.

Looking for V2 docs? here they are

Contribution Guide:

Quickstart

  • clone this repo locally
  • run npm install & npm run build
  • Include the /packages/alpinejs/dist/cdn.js file from a <script> tag on a webpage and you're good to go!

Brief Tour

You can get everything installed with: npm install in the root directory of this repo after cloning it locally.

This repo is a "mono-repo" using npm workspaces for managing the packages. Each package has its own folder in the /packages directory.

Rather than having to run separate builds for each package, all package bundles are handled with the same command: npm run build

Here's a brief look at each package in this repo:

Package Description
alpinejs The main Alpine repo with all of Alpine's core
csp A repo to provide a "CSP safe" build of Alpine
history A plugin for binding data to query string parameters using the history API (name is likely to change)
intersect A plugin for triggering JS expressions based on elements intersecting with the viewport
morph A plugin for morphing HTML (like morphdom) inside the page intelligently

The compiled JS files (as a result of running npm run [build/watch]) to be included as a <script> tag for example are stored in each package's packages/[package]/dist directory.

Each package should at least have: a "cdn" build that is self-initializing and can be included using the src attribute in a <script defer> tag, and a module.[esm/cjs].js file that is used for importing as a JS module (cjs for node, esm for everything else).

The bundling for Alpine V3 is handled exclusively by ESBuild. All of the configuration for these builds is stored in the scripts/build.js file.

Testing

There are 2 different testing tools used in this repo: Cypress (for integration tests), and Jest (for unit tests).

All tests are stored inside the /tests folder under /tests/cypress and /tests/jest.

You can run them both from the command line using: npm run test

If you wish to only run cypress and open it's user interface (recommended during development), you can run: npm run cypress

If you wish to only run Jest tests, you can run npm run jest like normal and target specific tests. You can specify command line config options to forward to the jest command with -- like so: npm run jest -- --watch