1.60.1-alpha.0 • Published 3 months ago

@penskemediacorp/larva v1.60.1-alpha.0

Weekly downloads
551
License
MIT
Repository
github
Last release
3 months ago

Larva

Note: This package may eventually be split into separate packages.

By nature it is a wrapper package that brings all of the smaller Larva packages together, and provides a sandbox for testing Larva tools. Now, it also contains the larva binary build scripts and the Larva UI Express server for patterns development.

  • An Express server and UI for building project-level patterns and configuring existing patterns
  • Gulp configuration for building SCSS
  • A basic webpack configuration for JS
  • An init command for scaffolding the Larva directory structure
  • The write-json script for building the JSON for each pattern
  • A larva binary that provides access to all of the above

Usage

If a brand new project:

In order to avoid conflicting node versions, Larva should be contained to its own directory.

If you are working in a brand new project, create a directory called assets and follow the below steps from the root of assets.

If you are working in an existing project, create a directory called larva and follow the below steps from its root.

First we will initialize an npm package, install Larva, and run the init command to scaffold our directory structure:

// TODO: the npx workflow needs to be tested once this is released on npm.

# Create an npm package
$ npm init

# Add Larva and scaffold directory structure
$ npx @penskemediacorp/larva init

This will install the main Larva package and create a directory called larva/ that contains a scaffold of the directory structure. Move the contents of this directory into your current working directory so that the directory structure aligns with the following:

|- pmc-consuming-project/
	|- assets/ (or larva if in an older code-base)
		|- build/
		|- node_modules/
		|- src/
		|- entries/
		|- public/
		|- package.json
		|- larva.config.js
		|- .nvmrc

Next, check in root README.md from the scaffold and copy the scripts into package.json as directed.

Finally, create a directory template-parts/patterns to hold the PHP version of patterns. If working from the CLI, you can copy/paste this bash command:

|- pmc-consuming-project/
	|- template-parts/
		|- patterns/

larva Binary & Build Scripts

Inspired by @wordpress/scripts, this package provides a bindary and several scripts for performing common tasks when building UI with Larva. This code lives in the scripts directory of this package.

For asset building commands, JS and SCSS can be run at the same time, or separately, in order to minimize the build time for cases where either JS or SCSS, not both, need to be built.

Usage

Assuming Larva is installed, make sure the @penskemediacorp/larva package is at least at version 8.0.0-alpha.

To use the build scripts, add the following to package.json in a project that uses the Larva assets directory structure:

{
	"scripts": {
		"prod": "larva prod-scss & larva prod-js",
		"prod:scss": "larva prod-scss",
		"prod:js": "larva prod-js",
		"dev": "larva dev-js & larva dev-scss",
		"dev:scss": "larva dev-scss",
		"dev:js": "larva dev-js",
		"lint": "larva lint-scss & larva lint-js",
		"lint:scss": "larva lint-scss",
		"lint:js": "larva lint-js ./",
		"lint-fix": "larva lint-scss --fix & npm run lint:js --fix",
		"lint-fix:scss": "larva lint-scss --fix",
		"lint-fix:js": "larva lint-js --fix",
		"larva": "larva server",
		"write-json": "larva write-json larva && larva write-json",
		"build-icons": "larva build-icons",
		"build-html": "larva build-html"
	}
}

Script Usage Notes

build-html

This is the script for building static HTML files for deployment. It accepts two CLI arguments, the first for build source ('project' or 'larva') and the second as an optional port number. The default is 3000.

Example of building HTML for project Larva patterns: npm run build-html -- project.

Example of building HTML for Larva patterns with a server on port 2003: npm run build-html -- larva 2003.

prod:scss

This command accepts an optional flag, --generate-important-variants, which produces a second version of each entrypoint. In these variants, every rule includes the !important declaration. These stylesheets are used with themes that have not fully adopted Larva, allowing Larva to overcome the theme's styles' specificity.

Overview of Functionality

This operates by way of a single binary, larva, and provides a layer of abstraction around CLI commands from various tools. The larva binary will point to a default configuration for each command and run its package's associated binary (e.g. eslint or gulp). The configurations are stored in separate package so as to be available to projects not using Larva.

For example, when the below scripts are present in a consuming projects package.json, the following would happen for npm run dev:scss (with the scripts value: larva dev-scss) in this package: 1. In bin/larva.js, get arguments from CLI, and execute a file with name corresponding to the argument. 2. dev-scss.js executes gulp CLI with additional arguments defined in the JS file via spawnScript, which uses the cross-spawn npm package to handle cross-platform inconsistencies.

Similarly, npm run lint:js (with the scripts value: larva lint-js) would do the following: 1. In bin/larva.js, get arguments from CLI and execute lint-js.js. 2. lint-js.js executes the eslint CLI with both CLI arguments and specific arguments defined in the script.

1.60.1-alpha.0

3 months ago

1.60.0

3 months ago

1.59.0

4 months ago

1.56.0

8 months ago

1.58.2-alpha.5

5 months ago

1.55.0

8 months ago

1.57.0

7 months ago

1.28.1-alpha.141

5 months ago

1.58.1

5 months ago

1.58.0

5 months ago

1.58.3

5 months ago

1.58.2

5 months ago

1.52.0

9 months ago

1.53.0

8 months ago

1.54.0

8 months ago

1.50.0

10 months ago

1.51.0

9 months ago

1.49.0

10 months ago

1.44.0

1 year ago

1.45.1

1 year ago

1.45.0

1 year ago

1.46.0

12 months ago

1.46.1

12 months ago

1.47.1

12 months ago

1.47.0

12 months ago

1.48.0

11 months ago

1.48.1

11 months ago

1.42.2

1 year ago

1.42.3

1 year ago

1.43.1

1 year ago

1.43.0

1 year ago

1.40.1

1 year ago

1.41.0

1 year ago

1.42.0

1 year ago

1.42.1

1 year ago

1.40.0

1 year ago

1.34.0

1 year ago

1.33.0

1 year ago

1.35.0

1 year ago

1.36.0

1 year ago

1.37.0

1 year ago

1.37.3

1 year ago

1.37.4

1 year ago

1.37.1

1 year ago

1.37.2

1 year ago

1.37.5

1 year ago

1.37.6

1 year ago

1.38.1

1 year ago

1.39.0

1 year ago

1.29.0

2 years ago

1.32.0

2 years ago

1.24.1

2 years ago

1.25.0

2 years ago

1.26.0

2 years ago

1.27.1

2 years ago

1.30.0

2 years ago

1.28.0

2 years ago

1.31.0

2 years ago

1.18.0

2 years ago

1.21.0

2 years ago

1.19.0

2 years ago

1.22.0

2 years ago

1.22.1

2 years ago

1.10.0

2 years ago

1.12.0

2 years ago

1.23.0

2 years ago

1.11.0

2 years ago

1.14.0

2 years ago

1.15.0

2 years ago

1.9.0

2 years ago

1.16.0

2 years ago

1.8.0

2 years ago

1.17.0

2 years ago

1.7.2

2 years ago

1.20.0

2 years ago

1.6.1

2 years ago

1.6.0

2 years ago

0.7.2

2 years ago

0.7.1

2 years ago

0.7.4

2 years ago

0.7.3

2 years ago

0.7.0

2 years ago

1.5.0

2 years ago

1.4.0

2 years ago

0.7.5

2 years ago

1.3.0

2 years ago

0.6.5

2 years ago

1.2.0

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

0.6.4-develop.16

2 years ago

0.6.4-develop.17

2 years ago

1.0.0

2 years ago

1.7.1

2 years ago

1.7.0

2 years ago

0.5.8-alpha.0

2 years ago

0.5.6

2 years ago

0.6.3

2 years ago

0.6.2

2 years ago

0.6.4

2 years ago

0.6.1

2 years ago

0.6.0

2 years ago

0.5.7-alpha.0

2 years ago

0.5.8

2 years ago

0.5.7

2 years ago

0.5.4

2 years ago

0.5.5

2 years ago

0.5.3

2 years ago

0.5.0

2 years ago

0.5.2

2 years ago

0.5.1

2 years ago

0.4.4

2 years ago

0.3.12-develop.8

2 years ago

0.3.12-develop.2

2 years ago

0.4.4-develop.1

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.4.3

2 years ago

0.4.2

2 years ago

0.3.11

2 years ago

0.4.1-develop.1

2 years ago

0.3.10-develop.9

2 years ago

0.3.10-develop.8

2 years ago

0.3.10-develop.7

2 years ago

0.3.10-develop.6

2 years ago

0.3.10

2 years ago

0.3.8-alpha.0

2 years ago

0.3.9-develop.5

2 years ago

0.3.9-develop.2

2 years ago

0.3.9-develop.3

2 years ago

0.3.9-develop.0

2 years ago

0.3.8

2 years ago

0.3.9

2 years ago

0.3.7

2 years ago

0.3.4-alpha.0

3 years ago

0.3.6

3 years ago

0.3.5

3 years ago

0.3.4

3 years ago

0.3.3

3 years ago

0.3.3-alpha.0

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.0

3 years ago

0.3.0-alpha.0

3 years ago

0.3.0-alpha.1

3 years ago

0.2.9

3 years ago

0.2.8

3 years ago

0.2.7

3 years ago

0.2.6-alpha.3

3 years ago

0.2.6-alpha.1

3 years ago

0.2.6-alpha.2

3 years ago

0.2.6-alpha.0

3 years ago

0.2.6

3 years ago

0.2.5

3 years ago

0.2.4

3 years ago

0.2.1

3 years ago

0.2.3

3 years ago

0.2.0

3 years ago

0.2.0-alpha.0

3 years ago

0.2.1-develop.0

3 years ago

0.1.20

3 years ago

0.1.20-alpha.0

3 years ago

0.1.19

3 years ago

0.1.18

3 years ago

0.1.17

3 years ago

0.1.16

3 years ago

0.1.15

3 years ago

0.1.14

3 years ago

0.1.11

3 years ago

0.1.12

3 years ago

0.1.10

3 years ago

0.1.9

3 years ago

0.1.7

3 years ago

0.1.4

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.2-alpha.1

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.0

4 years ago

0.1.1

4 years ago

8.14.26-alpha.0

4 years ago

8.14.25-alpha.0

4 years ago

8.14.24-alpha.0

4 years ago

8.14.23-alpha.0

4 years ago

8.14.22-alpha.0

4 years ago

8.14.21-alpha.0

4 years ago

8.14.20-alpha.0

4 years ago

8.14.19-alpha.0

4 years ago

8.14.18-alpha.0

4 years ago

8.14.17-alpha.0

4 years ago

8.14.16-alpha.0

4 years ago

8.14.15-alpha.0

4 years ago

8.14.14-alpha.0

4 years ago

8.14.13-alpha.0

4 years ago

8.14.12-alpha.0

4 years ago

8.14.11-alpha.0

4 years ago

8.14.10-alpha.0

4 years ago

8.14.8-alpha.0

4 years ago

8.14.9-alpha.0

4 years ago

8.14.7-alpha.0

4 years ago

8.14.6-alpha.0

4 years ago

8.14.5-alpha.0

4 years ago

8.14.4-alpha.0

4 years ago

8.14.3-alpha.0

4 years ago

8.14.2-alpha.0

4 years ago

8.14.1-alpha.0

4 years ago

8.14.0-alpha.0

4 years ago

8.13.0-alpha.0

4 years ago

8.12.1-alpha.0

4 years ago

8.12.0-alpha.0

4 years ago

8.11.1-alpha.0

4 years ago

8.11.0-alpha.0

4 years ago

8.10.0-alpha.0

4 years ago

8.9.0-alpha.0

4 years ago

8.8.1-alpha.0

4 years ago

8.8.0-alpha.0

4 years ago

8.7.1-alpha.0

4 years ago

8.7.0-alpha.0

4 years ago

8.6.0-alpha.0

4 years ago

8.6.1-alpha.0

4 years ago

8.5.4-alpha.0

4 years ago

8.5.3-alpha.0

4 years ago

8.5.2-alpha.0

4 years ago

8.5.1-alpha.0

4 years ago

8.5.0-alpha.0

4 years ago

8.4.0-alpha.0

4 years ago

8.3.0-alpha.0

4 years ago

8.2.0-alpha.0

4 years ago

8.1.1-alpha.0

4 years ago

8.1.0-alpha.0

4 years ago

8.0.0-alpha.0

4 years ago

7.0.0-alpha.0

4 years ago

7.0.1-alpha.0

4 years ago

6.12.1-alpha.0

4 years ago

6.12.0-alpha.0

4 years ago

6.11.2-alpha.0

4 years ago

6.11.1-alpha.0

4 years ago

6.11.0-alpha.0

4 years ago

6.10.1-alpha.0

4 years ago

6.10.2-alpha.0

4 years ago

6.7.0-alpha.0

4 years ago

6.6.0-alpha.0

4 years ago

6.9.0-alpha.0

4 years ago

6.10.0-alpha.0

4 years ago

6.8.0-alpha.0

4 years ago

6.5.0-alpha.0

4 years ago

6.4.0

4 years ago

6.3.2-alpha.0

4 years ago

6.3.1-alpha.0

4 years ago

6.3.0-alpha.0

4 years ago

6.2.0-alpha.0

4 years ago

6.1.0-alpha.0

4 years ago

6.0.0-alpha.0

4 years ago

5.5.1-alpha.0

4 years ago

5.4.2-alpha.0

4 years ago

4.1.1-alpha.0

4 years ago

4.0.1-alpha.0

4 years ago

4.0.0-alpha.0

4 years ago

3.5.0-alpha.0

4 years ago

3.3.0-alpha.0

4 years ago

3.0.0-alpha.0

4 years ago

2.11.0-alpha.0

5 years ago

2.9.0-alpha.0

5 years ago

2.5.2-alpha.0

5 years ago

2.5.0-alpha.0

5 years ago

2.4.0-alpha.0

5 years ago

2.3.2-alpha.0

5 years ago

2.1.0-alpha.0

5 years ago

2.0.0-alpha.0

5 years ago

1.10.0-alpha.0

5 years ago

1.9.0-alpha.0

5 years ago

1.8.0-alpha.0

5 years ago

1.7.0-alpha.0

5 years ago

1.6.0-alpha.0

5 years ago

1.5.6-alpha.0

5 years ago

1.5.5-alpha.0

5 years ago

1.5.4-alpha.0

5 years ago

1.5.3-alpha.0

5 years ago

1.5.2-alpha.0

5 years ago

1.5.0-alpha.0

5 years ago

1.2.1-alpha.0

5 years ago

1.2.0-alpha.0

5 years ago

1.0.2-alpha.0

5 years ago

1.0.1-alpha.0

5 years ago

0.0.5-alpha.0

5 years ago

0.0.3-alpha.0

5 years ago

0.0.2-alpha.0

5 years ago