9.4.1 • Published 2 days ago

@financial-times/dotcom-build-images v9.4.1

Weekly downloads
7
License
MIT
Repository
-
Last release
2 days ago

@financial-times/dotcom-build-images

This package exports a Webpack plugin to provide support for static image assets in our asset pipeline. The plugin will copy all image files contained in the client/ directory, and any of its subdirectories, into the configured public directory.

Getting started

This package is compatible with Node 12+ and is distributed on npm.

npm install --save-dev @financial-times/dotcom-build-images

After installing the module you must add it to the list of plugins in your project's webpack.config.js configuration file:

const { PageKitImagesPlugin } = require('@financial-times/dotcom-build-base');

module.exports = {
	plugins: [
		new PageKitImagesPlugin()
	]
}

Scope

The directory path for each image will be retained e.g.

image.jpg -> image.jpg images/image.jpg -> images/image.jpg images/subdir/image.jpg -> images/subdir/image.jpg

The public image paths are automatically added to the generated manifest.json, meaning that they're available via the dotcom-server-asset-loader e.g.

assetLoader.getPublicURL('images/subdir/image.jpg')

The image file names are hashed in production, e.g. image.76f59deb1275.jpg, to allow us to set longer cache times.

The plugin can be configured to look in a custom location for the images by passing in the relevant base path:

new PageKitImagesPlugin({ basePath: path.join(__dirname, '/path', '/to', '/images') })

Options

OptionTypeDefaultDescription
basePathString"./client/"Directory to look in for images

Caveats

  • This works by creating a new "fake" entry point and will output a useless JS file - this was necessary because the manifest plugin used by Page Kit doesn't recognise the type of dependencies added by Webpack's copy plugin (so you wouldn't be able to access images via the asset loader, boo!)

  • It is possible to use the copy plugin, but that would mean swapping the manifest plugin: https://gist.github.com/i-like-robots/9a460b55bcc34a38866b9cc163787639

9.4.1

2 days ago

9.4.0

23 days ago

9.3.4

3 months ago

8.2.6

3 months ago

9.3.3

3 months ago

9.3.2

4 months ago

9.3.1

4 months ago

9.3.0

4 months ago

9.2.1

4 months ago

9.2.0

4 months ago

9.1.1

4 months ago

9.1.0

5 months ago

9.0.3

5 months ago

9.0.0-beta.15

7 months ago

9.0.0-beta.16

7 months ago

9.0.0-beta.13

8 months ago

9.0.0-beta.14

8 months ago

9.0.0-beta.11

8 months ago

9.0.0-beta.12

8 months ago

9.0.0-beta.10

8 months ago

8.2.3

7 months ago

8.2.2

7 months ago

8.2.5

7 months ago

8.2.4

7 months ago

9.0.0-beta.5

9 months ago

9.0.0-beta.4

9 months ago

9.0.0-beta.3

9 months ago

9.0.0-beta.2

9 months ago

9.0.0-beta.1

9 months ago

9.0.0-beta.9

8 months ago

9.0.0-beta.8

8 months ago

9.0.0-beta.7

8 months ago

9.0.0-beta.6

8 months ago

8.2.1

8 months ago

8.2.0

8 months ago

9.0.2

6 months ago

9.0.1

7 months ago

8.1.0

11 months ago

7.3.5

1 year ago

7.3.4

1 year ago

8.0.0

1 year ago

7.3.3

1 year ago

7.3.2

1 year ago

7.3.1

1 year ago

7.3.0

1 year ago

7.2.6

1 year ago

7.2.7

1 year ago

7.1.3

2 years ago

7.2.5

1 year ago

7.2.4

2 years ago

7.1.4

2 years ago

7.1.1

2 years ago

7.1.0

2 years ago

7.0.0

2 years ago

6.0.1

2 years ago

6.0.0

2 years ago

6.0.2

2 years ago

5.1.0

2 years ago

5.0.0

2 years ago

4.2.0

2 years ago

4.1.0

2 years ago

4.0.0

2 years ago

3.0.0

2 years ago

2.6.1

3 years ago

2.6.2

3 years ago

2.6.0

3 years ago

2.5.2

3 years ago

2.5.1

3 years ago

2.4.0

3 years ago

2.3.0

3 years ago

2.2.1

4 years ago

2.2.0

4 years ago

2.1.1

4 years ago

2.1.0-pre.1

4 years ago

2.1.0

4 years ago