Skip to content

Commit cded7a9

Browse files
committed
Added clean plugin.
1 parent a3e7b7f commit cded7a9

8 files changed

+78
-11
lines changed

blueprint.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"[`rollup-plugin-minify-lit-html` - A Rollup plugin that minifies lit-html templates](src/lib/rollup-plugins/minify-lit-html)",
2323
"[`rollup-plugin-replace` - A Rollup plugin that replaces an import with another import](src/lib/rollup-plugins/replace)",
2424
"[`rollup-plugin-workbox` - A Rollup plugin that uses workbox to generate a service worker](src/lib/rollup-plugins/workbox)",
25-
"[`rollup-plugin-budget` - A Rollup plugin that compares the sizes of the files to a specified budget](src/lib/rollup-plugins/budget)"
25+
"[`rollup-plugin-budget` - A Rollup plugin that compares the sizes of the files to a specified budget](src/lib/rollup-plugins/budget)",
26+
"[`rollup-plugin-clean` - A Rollup plugin that clean directories before rebuilding](src/lib/rollup-plugins/clean)"
2627
]
2728
}

rollup.config-simple.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export default {
3333
],
3434
plugins: [
3535
...defaultPlugins({
36-
cleanerConfig: {
36+
cleanConfig: {
3737
targets: [
3838
folders.dist
3939
]

rollup.config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export default {
4343
copyConfig: {
4444
resources: [[folders.src_assets, folders.dist_assets]]
4545
},
46-
cleanerConfig: {
46+
cleanConfig: {
4747
targets: [
4848
folders.dist
4949
]

src/cli/new.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ export default {
168168
],
169169
plugins: [
170170
...defaultPlugins({
171-
cleanerConfig: {
171+
cleanConfig: {
172172
targets: [
173173
folders.dist
174174
]

src/lib/create-rollup-config.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import autoprefixer from "autoprefixer";
33
import cssnano from "cssnano";
44
import precss from "precss";
55
import { OutputOptions } from "rollup";
6-
import cleaner from "rollup-plugin-cleaner";
76
import commonjs from "rollup-plugin-commonjs";
87
import json from "rollup-plugin-json";
98
import license from "rollup-plugin-license";
@@ -13,6 +12,7 @@ import serve from "rollup-plugin-serve";
1312
import { terser } from "rollup-plugin-terser";
1413
import visualizer from "rollup-plugin-visualizer";
1514
import { budget, IRollupPluginBudgetConfig } from "./rollup-plugins/budget/rollup-plugin-budget";
15+
import { clean, IRollupPluginCleanConfig } from "./rollup-plugins/clean/rollup-plugin-clean";
1616
import { compress, IRollupPluginCompressConfig } from "./rollup-plugins/compress/rollup-plugin-compress";
1717
import { copy, IRollupPluginCopyConfig } from "./rollup-plugins/copy/rollup-plugin-copy";
1818
import { htmlTemplate, IRollupPluginHtmlTemplateConfig } from "./rollup-plugins/html-template/rollup-plugin-html-template";
@@ -35,7 +35,7 @@ export interface IDefaultPlugins extends IDefaultResolvePlugins{
3535
copyConfig: Partial<IRollupPluginCopyConfig>;
3636
htmlTemplateConfig: Partial<IRollupPluginHtmlTemplateConfig>;
3737
replaceConfig: Partial<IRollupPluginReplaceConfig>;
38-
cleanerConfig: any;
38+
cleanConfig: Partial<IRollupPluginCleanConfig>
3939
progressConfig: any;
4040
}
4141

@@ -154,7 +154,7 @@ export const defaultResolvePlugins = ({importStylesConfig, jsonConfig, resolveCo
154154

155155
/**
156156
* Default configuration for the plugins that runs every time the bundle is created.
157-
* @param cleanerConfig
157+
* @param cleanConfig
158158
* @param copyConfig
159159
* @param importStylesConfig
160160
* @param jsonConfig
@@ -165,16 +165,16 @@ export const defaultResolvePlugins = ({importStylesConfig, jsonConfig, resolveCo
165165
* @param commonjsConfig
166166
* @param replaceConfig
167167
*/
168-
export const defaultPlugins = ({cleanerConfig, copyConfig, importStylesConfig, jsonConfig, htmlTemplateConfig, resolveConfig, progressConfig, tsConfig, commonjsConfig, replaceConfig}: Partial<IDefaultPlugins> = {}) => [
168+
export const defaultPlugins = ({cleanConfig, copyConfig, importStylesConfig, jsonConfig, htmlTemplateConfig, resolveConfig, progressConfig, tsConfig, commonjsConfig, replaceConfig}: Partial<IDefaultPlugins> = {}) => [
169169

170170
// Shows a progress indicator while building
171171
progress({
172172
...configOrDefault(progressConfig)
173173
}),
174174

175175
// Cleans the dist folder to get rid of files from the previous build
176-
cleaner({
177-
...configOrDefault(cleanerConfig)
176+
clean({
177+
...configOrDefault(cleanConfig)
178178
}),
179179

180180
// Teach rollup how to resolve imports
+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# rollup-plugin-clean
2+
3+
A Rollup plugin that clean directories before rebuilding.
4+
5+
## Usage
6+
7+
### Example
8+
9+
```js
10+
import {clean} from "@appnest/web-config";
11+
12+
export default {
13+
entry: "src/index.js"
14+
output: {
15+
dest: "dist/index.js"
16+
},
17+
plugins: [
18+
clean({
19+
targets: [
20+
"dist"
21+
]
22+
})
23+
]
24+
};
25+
```
26+
27+
## 🎉 License
28+
29+
Licensed under [MIT](https://opensource.org/licenses/MIT).
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { green } from "colors";
2+
import { emptyDirSync, existsSync } from "fs-extra";
3+
import { normalize } from "path";
4+
5+
export interface IRollupPluginCleanConfig {
6+
targets: string[];
7+
verbose: boolean;
8+
}
9+
10+
const defaultConfig: IRollupPluginCleanConfig = {
11+
targets: [],
12+
verbose: true
13+
};
14+
15+
/**
16+
* A Rollup plugin that clean directories before rebuilding.
17+
* @param config
18+
*/
19+
export function clean (config: Partial<IRollupPluginCleanConfig> = {}) {
20+
const {targets, verbose} = {...defaultConfig, ...config};
21+
return {
22+
name: "clean",
23+
generateBundle: (): void => {
24+
for (const target of targets) {
25+
const path = normalize(target);
26+
if (existsSync(path)) {
27+
if (verbose) {
28+
console.log(green(`[clean] - Cleaning "${path}"`));
29+
}
30+
31+
emptyDirSync(path);
32+
}
33+
}
34+
}
35+
};
36+
}

src/lib/rollup-plugins/index.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ export * from "./copy/rollup-plugin-copy";
66
export * from "./workbox/rollup-plugin-workbox";
77
export * from "./compress/rollup-plugin-compress";
88
export * from "./replace/rollup-plugin-replace";
9-
export * from "./budget/rollup-plugin-budget";
9+
export * from "./budget/rollup-plugin-budget";
10+
export * from "./clean/rollup-plugin-clean";

0 commit comments

Comments
 (0)