https://github.com/avin/static-hash-version
Adds a prefix to links to statics containing the hash of the specified local files
https://github.com/avin/static-hash-version
Last synced: about 2 months ago
JSON representation
Adds a prefix to links to statics containing the hash of the specified local files
- Host: GitHub
- URL: https://github.com/avin/static-hash-version
- Owner: avin
- Created: 2021-05-09T12:27:31.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-05-09T12:30:54.000Z (about 5 years ago)
- Last Synced: 2026-01-21T14:10:54.827Z (5 months ago)
- Language: TypeScript
- Size: 77.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Static-hash-version
Adds a prefix to links to statics containing the hash of the specified local files.
Before:
```html
```
After (with hash version prefix):
```html
```
After (with integrity attribute):
```html
```
## Usage
Install:
```sh
npm install static-hash-version
```
Simple usage:
```js
const staticHashVersion = require("static-hash-version");
const result = staticHashVersion({
htmlFilePath: "./static/index.html",
});
console.log(result);
```
Complex usage:
```js
const staticHashVersion = require("static-hash-version");
staticHashVersion({
htmlFilePath: "./static/index.html",
writeToFile: true,
tags: [
{
tagSelector: "script",
fileAttr: "src",
withIntegrity: false,
withVersion: true,
},
{
tagSelector: 'link[rel="stylesheet"]',
fileAttr: "href",
withIntegrity: false,
withVersion: true,
},
],
onFileAbsence: (filePath) => {
console.warn(`File ${filePath} is absent`);
},
});
```
## Options
### htmlFilePath
- Required: **yes**
- Type: `string`
- Default value:
- Description: File path for processing html file
### writeToFile
- Required: no
- Type: `boolean`
- Default value: `false`
- Description: Write result to processing html file
### onFileAbsence
- Required: no
- Type: `(filePath: string) => void`
- Default value: `(v: string) => {}`
- Description: Function called when the file specified in the tag is not found on disk
### tags
- Required: no
- Type:
```js
{
tagSelector: string;
fileAttr: string;
withIntegrity: boolean;
withVersion: boolean;
}
[];
```
- Default value:
```js
[
{
tagSelector: "script",
fileAttr: "src",
withIntegrity: false,
withVersion: true,
},
{
tagSelector: 'link[rel="stylesheet"]',
fileAttr: "href",
withIntegrity: false,
withVersion: true,
},
];
```
- Description: Processing tags
#### Tags item options
##### tagSelector
- Type: `string`
- Description: Selector for tag
##### fileAttr
- Type: `string`
- Description: Tag attribute containing a link to the file
##### withIntegrity
- Type: `boolean`
- Description: Add integrity-attribute
##### withVersion
- Type: `boolean`
- Description: Add hash suffix for file path `?v=XXXXX`