npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

add-assets-to-json-webpack-plugin

v2.0.1

Published

Webpack plugin that creates a json file with your asset data

Downloads

9

Readme

Add Assets to JSON Webpack Plugin

Build Status Coverage Status

Webpack plugin that creates a json file with your asset data.

Install

npm install add-assets-to-json-webpack-plugin --save-dev

Basic Config

new AddAssetsToJSON({
    path: path.resolve(__dirname, 'assets', 'json')
})

Config With removePreviousAssetNames

new AddAssetsToJSON({
    filename: 'assets.json',
    path: path.resolve(__dirname, 'assets', 'json'),
    removePreviousAssetNames: ['app.*.js']
})

Note: this plugin only keeps unique assets based off the name of the asset. So removePreviousAssetNames is only necessary if you want to remove a previous asset sciprt name like app.[chunkhash].js.

Options

Option | Type | Description ------ | ---- | ----------- filename | string | The name of the json file. Defaults to assets.json. overwriteExistingFile | boolean | Overwrites the defined json file that's generated from path and filename. *path | string | Path to json file. removePreviousAssetNames | array | Removes a previous asset script name based on the name provided. Uses matcher (glob matching) to match against previous name. *Required field

Examples

Basic Example

// config 
new AddAssetsToJSON({
    path: path.resolve(__dirname, 'assets', 'json')
})

// previous assets json file
[
    {name: 'app.chunk1.js'},
    {name: 'app.chunk2.js'}
]

// new assets json file
[
    {name: 'app.chunk2.js'}, 
    {name: 'app.chunk3.js'}
]

// generated json file
[
    {name: 'app.chunk1.js'},
    {name: 'app.chunk2.js'}, 
    {name: 'app.chunk3.js'}
]

Notice that it keeps previously saved assets, doesn't append asset names that already exist, and adds new asset names that don't exist.

Example With removePreviousAssetNames

// config 
new AddAssetsToJSON({
    path: path.resolve(__dirname, 'assets', 'json'),
    removePreviousAssetNames: ['app.*.js']
})

// previous assets json file
[
    {name: 'vendor.chunkHash.js'},
    {name: 'app.chunkHash.js'}
]

// new assets json file
[
    {name: 'app.chunkHashThatsDifferent.js'}
]

// generated json file
[
    {name: 'vendor.chunkHash.js'},
    {name: 'app.chunkHashThatsDifferent.js'}
]

Notice that this example removes a previous asset name that was matched with matcher.

Couple Caveats with removePreviousAssetNames:

  • It won't remove a previous asset if the match also does not find the same match in the new assets that webpack generates. It would seem to me that this would be an unintended behavior to remove something without replacing it with another asset name.
  • It won't remove any new assets that were generated from webpack, only assets that were in your previous json file.