@caweb/webpack 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.txt +6 -0
- package/package.json +2 -2
- package/plugins/html/changelog.txt +9 -0
- package/plugins/html/package-lock.json +21973 -21973
- package/plugins/html/package.json +125 -69
- package/plugins/html/scripts/update-scripts.js +46 -0
- package/plugins/html/webpack.config.js +41 -33
|
@@ -1,70 +1,126 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
2
|
+
"name": "@caweb/html-webpack-plugin",
|
|
3
|
+
"version": "1.5.3",
|
|
4
|
+
"description": "CAWebPublishing Sample Page and Configurations",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"files": [
|
|
8
|
+
"build",
|
|
9
|
+
"entry",
|
|
10
|
+
"sample",
|
|
11
|
+
"index.js",
|
|
12
|
+
"README.md",
|
|
13
|
+
"webpack.config.js"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"webpack": "webpack",
|
|
17
|
+
"postbuild": "npm run create-entrypoint && npm run generate-json",
|
|
18
|
+
"create-entrypoint": "node ./scripts/create-entrypoints.js",
|
|
19
|
+
"generate-json": "node ./scripts/icon.js",
|
|
20
|
+
"update-scripts": "node ./scripts/update-scripts.js",
|
|
21
|
+
"test": "echo \"Error: run tests from root\" && exit 0",
|
|
22
|
+
"build": "npm run build:compressed && npm run build:uncompressed",
|
|
23
|
+
"build:uncompressed": "webpack build --config ./webpack.config.js ./scripts/create-entrypoints.js --merge --mode development",
|
|
24
|
+
"build:compressed": "webpack build --config ./webpack.config.js ./scripts/create-entrypoints.js --merge --mode production",
|
|
25
|
+
"build:delta": "npm run build:delta:prod && npm run build:delta:dev",
|
|
26
|
+
"build:delta:prod": "webpack build --config ./webpack.config.js ./entry/delta.js --merge --mode production",
|
|
27
|
+
"build:delta:dev": "webpack build --config ./webpack.config.js ./entry/delta.js --merge --mode development",
|
|
28
|
+
"serve:delta": "webpack serve --config ./webpack.config.js ./entry/delta.js ./scripts/webpack.test.js --merge",
|
|
29
|
+
"serve:delta:quick": "set NODE_OPTIONS='--no-jshint --no-audit --no-a11y' && webpack serve --config ./webpack.config.js ./entry/delta.js ./scripts/webpack.test.js --merge",
|
|
30
|
+
"build:eureka": "npm run build:eureka:prod && npm run build:eureka:dev",
|
|
31
|
+
"build:eureka:prod": "webpack build --config ./webpack.config.js ./entry/eureka.js --merge --mode production",
|
|
32
|
+
"build:eureka:dev": "webpack build --config ./webpack.config.js ./entry/eureka.js --merge --mode development",
|
|
33
|
+
"serve:eureka": "webpack serve --config ./webpack.config.js ./entry/eureka.js ./scripts/webpack.test.js --merge",
|
|
34
|
+
"serve:eureka:quick": "set NODE_OPTIONS='--no-jshint --no-audit --no-a11y' && webpack serve --config ./webpack.config.js ./entry/eureka.js ./scripts/webpack.test.js --merge",
|
|
35
|
+
"build:mono": "npm run build:mono:prod && npm run build:mono:dev",
|
|
36
|
+
"build:mono:prod": "webpack build --config ./webpack.config.js ./entry/mono.js --merge --mode production",
|
|
37
|
+
"build:mono:dev": "webpack build --config ./webpack.config.js ./entry/mono.js --merge --mode development",
|
|
38
|
+
"serve:mono": "webpack serve --config ./webpack.config.js ./entry/mono.js ./scripts/webpack.test.js --merge",
|
|
39
|
+
"serve:mono:quick": "set NODE_OPTIONS='--no-jshint --no-audit --no-a11y' && webpack serve --config ./webpack.config.js ./entry/mono.js ./scripts/webpack.test.js --merge",
|
|
40
|
+
"build:oceanside": "npm run build:oceanside:prod && npm run build:oceanside:dev",
|
|
41
|
+
"build:oceanside:prod": "webpack build --config ./webpack.config.js ./entry/oceanside.js --merge --mode production",
|
|
42
|
+
"build:oceanside:dev": "webpack build --config ./webpack.config.js ./entry/oceanside.js --merge --mode development",
|
|
43
|
+
"serve:oceanside": "webpack serve --config ./webpack.config.js ./entry/oceanside.js ./scripts/webpack.test.js --merge",
|
|
44
|
+
"serve:oceanside:quick": "set NODE_OPTIONS='--no-jshint --no-audit --no-a11y' && webpack serve --config ./webpack.config.js ./entry/oceanside.js ./scripts/webpack.test.js --merge",
|
|
45
|
+
"build:orangecounty": "npm run build:orangecounty:prod && npm run build:orangecounty:dev",
|
|
46
|
+
"build:orangecounty:prod": "webpack build --config ./webpack.config.js ./entry/orangecounty.js --merge --mode production",
|
|
47
|
+
"build:orangecounty:dev": "webpack build --config ./webpack.config.js ./entry/orangecounty.js --merge --mode development",
|
|
48
|
+
"serve:orangecounty": "webpack serve --config ./webpack.config.js ./entry/orangecounty.js ./scripts/webpack.test.js --merge",
|
|
49
|
+
"serve:orangecounty:quick": "set NODE_OPTIONS='--no-jshint --no-audit --no-a11y' && webpack serve --config ./webpack.config.js ./entry/orangecounty.js ./scripts/webpack.test.js --merge",
|
|
50
|
+
"build:pasorobles": "npm run build:pasorobles:prod && npm run build:pasorobles:dev",
|
|
51
|
+
"build:pasorobles:prod": "webpack build --config ./webpack.config.js ./entry/pasorobles.js --merge --mode production",
|
|
52
|
+
"build:pasorobles:dev": "webpack build --config ./webpack.config.js ./entry/pasorobles.js --merge --mode development",
|
|
53
|
+
"serve:pasorobles": "webpack serve --config ./webpack.config.js ./entry/pasorobles.js ./scripts/webpack.test.js --merge",
|
|
54
|
+
"serve:pasorobles:quick": "set NODE_OPTIONS='--no-jshint --no-audit --no-a11y' && webpack serve --config ./webpack.config.js ./entry/pasorobles.js ./scripts/webpack.test.js --merge",
|
|
55
|
+
"build:sacramento": "npm run build:sacramento:prod && npm run build:sacramento:dev",
|
|
56
|
+
"build:sacramento:prod": "webpack build --config ./webpack.config.js ./entry/sacramento.js --merge --mode production",
|
|
57
|
+
"build:sacramento:dev": "webpack build --config ./webpack.config.js ./entry/sacramento.js --merge --mode development",
|
|
58
|
+
"serve:sacramento": "webpack serve --config ./webpack.config.js ./entry/sacramento.js ./scripts/webpack.test.js --merge",
|
|
59
|
+
"serve:sacramento:quick": "set NODE_OPTIONS='--no-jshint --no-audit --no-a11y' && webpack serve --config ./webpack.config.js ./entry/sacramento.js ./scripts/webpack.test.js --merge",
|
|
60
|
+
"build:santabarbara": "npm run build:santabarbara:prod && npm run build:santabarbara:dev",
|
|
61
|
+
"build:santabarbara:prod": "webpack build --config ./webpack.config.js ./entry/santabarbara.js --merge --mode production",
|
|
62
|
+
"build:santabarbara:dev": "webpack build --config ./webpack.config.js ./entry/santabarbara.js --merge --mode development",
|
|
63
|
+
"serve:santabarbara": "webpack serve --config ./webpack.config.js ./entry/santabarbara.js ./scripts/webpack.test.js --merge",
|
|
64
|
+
"serve:santabarbara:quick": "set NODE_OPTIONS='--no-jshint --no-audit --no-a11y' && webpack serve --config ./webpack.config.js ./entry/santabarbara.js ./scripts/webpack.test.js --merge",
|
|
65
|
+
"build:santacruz": "npm run build:santacruz:prod && npm run build:santacruz:dev",
|
|
66
|
+
"build:santacruz:prod": "webpack build --config ./webpack.config.js ./entry/santacruz.js --merge --mode production",
|
|
67
|
+
"build:santacruz:dev": "webpack build --config ./webpack.config.js ./entry/santacruz.js --merge --mode development",
|
|
68
|
+
"serve:santacruz": "webpack serve --config ./webpack.config.js ./entry/santacruz.js ./scripts/webpack.test.js --merge",
|
|
69
|
+
"serve:santacruz:quick": "set NODE_OPTIONS='--no-jshint --no-audit --no-a11y' && webpack serve --config ./webpack.config.js ./entry/santacruz.js ./scripts/webpack.test.js --merge",
|
|
70
|
+
"build:shasta": "npm run build:shasta:prod && npm run build:shasta:dev",
|
|
71
|
+
"build:shasta:prod": "webpack build --config ./webpack.config.js ./entry/shasta.js --merge --mode production",
|
|
72
|
+
"build:shasta:dev": "webpack build --config ./webpack.config.js ./entry/shasta.js --merge --mode development",
|
|
73
|
+
"serve:shasta": "webpack serve --config ./webpack.config.js ./entry/shasta.js ./scripts/webpack.test.js --merge",
|
|
74
|
+
"serve:shasta:quick": "set NODE_OPTIONS='--no-jshint --no-audit --no-a11y' && webpack serve --config ./webpack.config.js ./entry/shasta.js ./scripts/webpack.test.js --merge",
|
|
75
|
+
"build:sierra": "npm run build:sierra:prod && npm run build:sierra:dev",
|
|
76
|
+
"build:sierra:prod": "webpack build --config ./webpack.config.js ./entry/sierra.js --merge --mode production",
|
|
77
|
+
"build:sierra:dev": "webpack build --config ./webpack.config.js ./entry/sierra.js --merge --mode development",
|
|
78
|
+
"serve:sierra": "webpack serve --config ./webpack.config.js ./entry/sierra.js ./scripts/webpack.test.js --merge",
|
|
79
|
+
"serve:sierra:quick": "set NODE_OPTIONS='--no-jshint --no-audit --no-a11y' && webpack serve --config ./webpack.config.js ./entry/sierra.js ./scripts/webpack.test.js --merge",
|
|
80
|
+
"build:trinity": "npm run build:trinity:prod && npm run build:trinity:dev",
|
|
81
|
+
"build:trinity:prod": "webpack build --config ./webpack.config.js ./entry/trinity.js --merge --mode production",
|
|
82
|
+
"build:trinity:dev": "webpack build --config ./webpack.config.js ./entry/trinity.js --merge --mode development",
|
|
83
|
+
"serve:trinity": "webpack serve --config ./webpack.config.js ./entry/trinity.js ./scripts/webpack.test.js --merge",
|
|
84
|
+
"serve:trinity:quick": "set NODE_OPTIONS='--no-jshint --no-audit --no-a11y' && webpack serve --config ./webpack.config.js ./entry/trinity.js ./scripts/webpack.test.js --merge"
|
|
85
|
+
},
|
|
86
|
+
"repository": {
|
|
87
|
+
"type": "git",
|
|
88
|
+
"url": "git+https://github.com/CAWebPublishing/webpack.git",
|
|
89
|
+
"directory": "plugins/html"
|
|
90
|
+
},
|
|
91
|
+
"keywords": [
|
|
92
|
+
"caweb",
|
|
93
|
+
"cagov",
|
|
94
|
+
"webpack"
|
|
95
|
+
],
|
|
96
|
+
"author": "CAWebPublishing",
|
|
97
|
+
"license": "ISC",
|
|
98
|
+
"bugs": {
|
|
99
|
+
"url": "https://github.com/CAWebPublishing/webpack/issues"
|
|
100
|
+
},
|
|
101
|
+
"publishConfig": {
|
|
102
|
+
"access": "public"
|
|
103
|
+
},
|
|
104
|
+
"homepage": "https://github.com/CAWebPublishing/webpack/plugins/html#readme",
|
|
105
|
+
"devDependencies": {
|
|
106
|
+
"animate.css": "^4.1.1",
|
|
107
|
+
"bootstrap": "^5.3.3",
|
|
108
|
+
"bootstrap-forced-colors-css": "^1.0.7",
|
|
109
|
+
"fast-xml-parser": "^4.5.0",
|
|
110
|
+
"mini-css-extract-plugin": "^2.9.2",
|
|
111
|
+
"rtlcss-webpack-plugin": "^4.0.7"
|
|
112
|
+
},
|
|
113
|
+
"dependencies": {
|
|
114
|
+
"@caweb/a11y-webpack-plugin": "^1.0.9",
|
|
115
|
+
"@caweb/css-audit-webpack-plugin": "^1.0.12",
|
|
116
|
+
"@caweb/jshint-webpack-plugin": "^1.0.9",
|
|
117
|
+
"@wordpress/scripts": "^30.4.0",
|
|
118
|
+
"css-minimizer-webpack-plugin": "^7.0.0",
|
|
119
|
+
"handlebars-loader": "^1.7.3",
|
|
120
|
+
"html-webpack-link-type-plugin": "^1.1.1",
|
|
121
|
+
"html-webpack-plugin": "^5.6.3",
|
|
122
|
+
"html-webpack-skip-assets-plugin": "^1.0.4",
|
|
123
|
+
"webpack": "^5.96.1",
|
|
124
|
+
"webpack-cli": "^5.1.4"
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* External dependencies
|
|
5
|
+
*/
|
|
6
|
+
import fs from 'fs';
|
|
7
|
+
import path from 'path';
|
|
8
|
+
import { fileURLToPath } from 'url';
|
|
9
|
+
|
|
10
|
+
const pkg = JSON.parse( fs.readFileSync(path.resolve('package.json')) );
|
|
11
|
+
|
|
12
|
+
let scripts = {
|
|
13
|
+
"webpack": "webpack",
|
|
14
|
+
"postbuild": "npm run create-entrypoint && npm run generate-json",
|
|
15
|
+
"create-entrypoint": "node ./scripts/create-entrypoints.js",
|
|
16
|
+
"generate-json": "node ./scripts/icon.js",
|
|
17
|
+
"update-scripts": "node ./scripts/update-scripts.js",
|
|
18
|
+
"test": "echo \"Error: run tests from root\" && exit 0",
|
|
19
|
+
"build": "npm run build:compressed && npm run build:uncompressed",
|
|
20
|
+
"build:uncompressed": "webpack build --config ./webpack.config.js ./scripts/create-entrypoints.js --merge --mode development",
|
|
21
|
+
"build:compressed": "webpack build --config ./webpack.config.js ./scripts/create-entrypoints.js --merge --mode production",
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// iterate over all colorschemes
|
|
25
|
+
fs.readdirSync(path.resolve('src', 'styles', 'colorschemes')).forEach((c) => {
|
|
26
|
+
let scheme = c.substring(0, c.indexOf('.')).replace(' ', '');
|
|
27
|
+
|
|
28
|
+
// add build scripts for each colorscheme
|
|
29
|
+
scripts[`build:${scheme}`] = `npm run build:${scheme}:prod && npm run build:${scheme}:dev`;
|
|
30
|
+
scripts[`build:${scheme}:prod`] = `webpack build --config ./webpack.config.js ./entry/${scheme}.js --merge --mode production`;
|
|
31
|
+
scripts[`build:${scheme}:dev`] = `webpack build --config ./webpack.config.js ./entry/${scheme}.js --merge --mode development`;
|
|
32
|
+
|
|
33
|
+
// add serve scripts for each colorscheme
|
|
34
|
+
scripts[`serve:${scheme}`] = `webpack serve --config ./webpack.config.js ./entry/${scheme}.js ./scripts/webpack.test.js --merge`;
|
|
35
|
+
scripts[`serve:${scheme}:quick`] = `set NODE_OPTIONS='--no-jshint --no-audit --no-a11y --scheme false' && webpack serve --config ./webpack.config.js ./entry/${scheme}.js ./scripts/webpack.test.js --merge`;
|
|
36
|
+
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
// update scripts in package.json
|
|
40
|
+
pkg.scripts = scripts;
|
|
41
|
+
|
|
42
|
+
// write package.json file
|
|
43
|
+
fs.writeFileSync(
|
|
44
|
+
'package.json',
|
|
45
|
+
JSON.stringify( pkg, null, 4 )
|
|
46
|
+
)
|
|
@@ -50,10 +50,13 @@ function processArgs( arr ){
|
|
|
50
50
|
return tmp
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
function
|
|
54
|
-
return flags.includes(flag)
|
|
53
|
+
function flagExists(flag){
|
|
54
|
+
return flags.includes(flag)
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
+
function getArgVal(flag){
|
|
58
|
+
return flagExists(flag) ? flags[flags.indexOf(flag) + 1] : false;
|
|
59
|
+
}
|
|
57
60
|
|
|
58
61
|
// Update some of the default WordPress webpack rules.
|
|
59
62
|
baseConfig.module.rules.forEach((rule, i) => {
|
|
@@ -97,12 +100,14 @@ delete baseConfig.devServer;
|
|
|
97
100
|
let mode = getArgVal('--mode') ? getArgVal('--mode') : baseConfig.mode;
|
|
98
101
|
|
|
99
102
|
let webpackConfig = {
|
|
103
|
+
...baseConfig,
|
|
100
104
|
mode,
|
|
101
105
|
name: 'uncompressed',
|
|
102
106
|
target: 'web',
|
|
103
107
|
cache: false,
|
|
104
108
|
stats: 'errors',
|
|
105
109
|
output: {
|
|
110
|
+
...baseConfig.output,
|
|
106
111
|
clean: mode === 'production'
|
|
107
112
|
},
|
|
108
113
|
performance: {
|
|
@@ -110,7 +115,9 @@ let webpackConfig = {
|
|
|
110
115
|
maxEntrypointSize: 500000
|
|
111
116
|
},
|
|
112
117
|
module:{
|
|
118
|
+
...baseConfig.module,
|
|
113
119
|
rules: [
|
|
120
|
+
...baseConfig.module.rules,
|
|
114
121
|
/**
|
|
115
122
|
* Default template loader for html is lodash,
|
|
116
123
|
* lets switch to handlebars
|
|
@@ -230,11 +237,11 @@ if( 'serve' === webpackCommand ){
|
|
|
230
237
|
}
|
|
231
238
|
|
|
232
239
|
// Page Template and additional plugins
|
|
233
|
-
webpackConfig.plugins
|
|
240
|
+
webpackConfig.plugins.push(
|
|
234
241
|
new CAWebHTMLPlugin({
|
|
235
242
|
template,
|
|
236
243
|
templateParameters: {
|
|
237
|
-
|
|
244
|
+
scheme
|
|
238
245
|
},
|
|
239
246
|
skipAssets: [
|
|
240
247
|
/.*-rtl.css/, // we skip the Right-to-Left Styles
|
|
@@ -246,34 +253,35 @@ if( 'serve' === webpackCommand ){
|
|
|
246
253
|
}),
|
|
247
254
|
new HtmlWebpackSkipAssetsPlugin(),
|
|
248
255
|
new HtmlWebpackLinkTypePlugin(),
|
|
249
|
-
!
|
|
250
|
-
!
|
|
251
|
-
!
|
|
252
|
-
|
|
256
|
+
! flagExists('--no-jshint') ? new JSHintPlugin() : false,
|
|
257
|
+
! flagExists('--no-audit') ? new CSSAuditPlugin() : false,
|
|
258
|
+
! flagExists('--no-a11y') ? new A11yPlugin() : false
|
|
259
|
+
)
|
|
253
260
|
}
|
|
254
261
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
]
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
262
|
+
/**
|
|
263
|
+
* Production only
|
|
264
|
+
*/
|
|
265
|
+
if( mode === 'production' ){
|
|
266
|
+
// Config
|
|
267
|
+
webpackConfig.name = 'compressed';
|
|
268
|
+
webpackConfig.devtool = false;
|
|
269
|
+
|
|
270
|
+
// Output
|
|
271
|
+
webpackConfig.output.filename = '[name].min.js';
|
|
272
|
+
webpackConfig.output.chunkFilename = '[name].min.js?v=[chunkhash]';
|
|
273
|
+
|
|
274
|
+
// Plugins
|
|
275
|
+
webpackConfig.plugins.push(
|
|
276
|
+
new MiniCSSExtractPlugin( { filename: '[name].min.css' } ),
|
|
277
|
+
new RtlCssPlugin( { filename: '[name]-rtl.min.css' } )
|
|
278
|
+
)
|
|
279
|
+
|
|
280
|
+
// Optimization
|
|
281
|
+
webpackConfig.optimization.minimize = true;
|
|
282
|
+
webpackConfig.optimization.minimizer.push(
|
|
283
|
+
new CssMinimizerPlugin({test: /\.min\.css$/})
|
|
284
|
+
)
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
export default webpackConfig;
|