https://github.com/hmsk/symlink-webpack-plugin
🔗 Make symbolic links among files built by Webpack
https://github.com/hmsk/symlink-webpack-plugin
static-site-generation symlink webpack webpack-plugin
Last synced: 3 months ago
JSON representation
🔗 Make symbolic links among files built by Webpack
- Host: GitHub
- URL: https://github.com/hmsk/symlink-webpack-plugin
- Owner: hmsk
- License: mit
- Created: 2017-04-04T06:58:14.000Z (about 8 years ago)
- Default Branch: main
- Last Pushed: 2021-10-12T15:56:11.000Z (over 3 years ago)
- Last Synced: 2025-03-16T00:00:02.085Z (3 months ago)
- Topics: static-site-generation, symlink, webpack, webpack-plugin
- Language: JavaScript
- Homepage:
- Size: 343 KB
- Stars: 6
- Watchers: 2
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Symlink Webpack Plugin
[](https://www.npmjs.com/package/symlink-webpack-plugin)
[](https://github.com/hmsk/symlink-webpack-plugin/actions?query=workflow%3A%22Node+CI%22)A webpack plugin to make symbolic links in output dir.
## Installation
```bash
npm i -D symlink-webpack-plugin
```## Usage
In your webpack config:
```js
const SymlinkWebpackPlugin = require('symlink-webpack-plugin');module.exports = {
// ...etc
plugins: [
new SymlinkWebpackPlugin({ origin: 'index.html', symlink: '200.html' })
]
};
```This setting makes symbolic link file `[ouput_path]/200.html` to `[ouput_path]/index.html`.
### You can give configurations as Array
```js
const SymlinkWebpackPlugin = require('symlink-webpack-plugin');module.exports = {
// ...etc
plugins: [
new SymlinkWebpackPlugin([
{ origin: 'index.html', symlink: '200.html' },
{ origin: 'index.html', symlink: 'error_pages/404.html' },
])
]
};
```### `force` option (default: `false`)
```js
const SymlinkWebpackPlugin = require('symlink-webpack-plugin');module.exports = {
// ...etc
plugins: [
new SymlinkWebpackPlugin([
{ origin: 'index.html', symlink: '200.html', force: true },
{ origin: 'index.html', symlink: '404.html' },
])
]
};
```The plugin doesn't make any symlink if a directory for a destination doesn't exist as default.
Passing an option `force: true`, will create it regardless.When directories of symlink don't exist, `force` option allows to dig. For instance, what if a config has `symlink: 'one/two/200.html'` but `one/two/` dir doesn't exist when the plugin runs, `one`, `one/two` directories will be created.
### `hook` option (default: `afterEmit`)
You can point an exact [compiler hook](https://webpack.js.org/api/compiler-hooks/) to make a symlink.
```js
{ origin: 'index.html', symlink: '200.html', hook: 'entryOption' },
```## Development
```bash
yarn
yarn test
```## License
[MIT](/LICENSE)