@ideasonpurpose/build-tools-wordpress 2.3.1 → 2.4.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/.github/workflows/npm-publish.yml +8 -5
- package/CHANGELOG.md +27 -0
- package/README.md +9 -2
- package/config/webpack.config.js +17 -9
- package/lib/DependencyManifestPlugin.js +25 -5
- package/package.json +25 -23
|
@@ -4,6 +4,10 @@ on:
|
|
|
4
4
|
push:
|
|
5
5
|
tags: ["v*"]
|
|
6
6
|
|
|
7
|
+
permissions:
|
|
8
|
+
id-token: write # Required for OIDC
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
7
11
|
jobs:
|
|
8
12
|
publish:
|
|
9
13
|
name: Build and publish to npm
|
|
@@ -16,10 +20,9 @@ jobs:
|
|
|
16
20
|
# https://github.com/actions/setup-node
|
|
17
21
|
- uses: actions/setup-node@v4
|
|
18
22
|
with:
|
|
19
|
-
node-version:
|
|
20
|
-
registry-url: https://registry.npmjs.org
|
|
23
|
+
node-version: '24'
|
|
24
|
+
registry-url: 'https://registry.npmjs.org'
|
|
21
25
|
|
|
22
26
|
# - run: npm ci
|
|
23
|
-
- run: npm publish
|
|
24
|
-
|
|
25
|
-
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
|
|
27
|
+
- run: npm publish --provenance --access public
|
|
28
|
+
|
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,33 @@ All notable changes to this project will be documented in this file. Dates are d
|
|
|
4
4
|
|
|
5
5
|
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
6
6
|
|
|
7
|
+
#### v2.4.1
|
|
8
|
+
|
|
9
|
+
> 22 December 2025
|
|
10
|
+
|
|
11
|
+
- update workflow for trusted publishing
|
|
12
|
+
|
|
13
|
+
#### v2.4.0
|
|
14
|
+
|
|
15
|
+
> 21 December 2025
|
|
16
|
+
|
|
17
|
+
- bump deps
|
|
18
|
+
- Enable loading Sass files from node_modules
|
|
19
|
+
|
|
20
|
+
#### v2.3.2
|
|
21
|
+
|
|
22
|
+
> 3 November 2025
|
|
23
|
+
|
|
24
|
+
- bump deps
|
|
25
|
+
- watch tweaks, debugging, formatting and cleanup
|
|
26
|
+
|
|
27
|
+
#### v2.3.1
|
|
28
|
+
|
|
29
|
+
> 21 October 2025
|
|
30
|
+
|
|
31
|
+
- liveReload workaround for mini-css-extract-plugin HMR issues
|
|
32
|
+
- WIP updates
|
|
33
|
+
|
|
7
34
|
#### v2.3.0
|
|
8
35
|
|
|
9
36
|
> 19 October 2025
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @ideasonpurpose/build-tools-wordpress
|
|
2
2
|
|
|
3
|
-
#### Version 2.
|
|
3
|
+
#### Version 2.4.2
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@ideasonpurpose/build-tools-wordpress)
|
|
6
6
|
[](https://github.com/ideasonpurpose/build-tools-wordpress#readme)
|
|
@@ -50,6 +50,14 @@ npm chokidar-cli "../../build-tools-wordpress/**/*" -c "npm install"
|
|
|
50
50
|
|
|
51
51
|
This project expects an entirely ES Module based environment and specifies all dependencies using standard ESM import syntax. Projects importing this file should set `"type": "module"` in their package.json files.
|
|
52
52
|
|
|
53
|
+
#### Sass imports
|
|
54
|
+
|
|
55
|
+
Sass can import stylesheet files directly from npm packages. Use the full path from node_modules like this:
|
|
56
|
+
|
|
57
|
+
```scss
|
|
58
|
+
@use "@ideasonpurpose/build-tools-wordpress/example/package-style";
|
|
59
|
+
```
|
|
60
|
+
|
|
53
61
|
#### Publishing to [npm](https://www.npmjs.com/package/@ideasonpurpose/build-tools-wordpress)
|
|
54
62
|
|
|
55
63
|
A GitHub action will auto-publish version-tagged releases to npm. In order to publish, the repository must have an `NPM_TOKEN` secret set with the token from npm. [Log into npmjs.org](https://www.npmjs.com/login) with a publish-authorized account, then find the token page linked from the Profile page sidebar. Generate a new token and update the repository secret.
|
|
@@ -63,4 +71,3 @@ A GitHub action will auto-publish version-tagged releases to npm. In order to pu
|
|
|
63
71
|
<a href="https://www.ideasonpurpose.com"><img src="https://raw.githubusercontent.com/ideasonpurpose/ideasonpurpose/master/iop-logo-white-on-black-88px.png" height="44" align="top" alt="IOP Logo"></a><img src="https://raw.githubusercontent.com/ideasonpurpose/ideasonpurpose/master/spacer.png" align="middle" width="4" height="54"> This project is actively developed and used in production at <a href="https://www.ideasonpurpose.com">Ideas On Purpose</a>.
|
|
64
72
|
|
|
65
73
|
<!-- END IOP CREDIT BLURB -->
|
|
66
|
-
```
|
package/config/webpack.config.js
CHANGED
|
@@ -172,7 +172,10 @@ export default async (env) => {
|
|
|
172
172
|
sassOptions: {
|
|
173
173
|
api: "modern-compiler",
|
|
174
174
|
|
|
175
|
-
loadPaths: [
|
|
175
|
+
loadPaths: [
|
|
176
|
+
path.resolve(config.src, "sass"),
|
|
177
|
+
path.resolve(siteDir, "node_modules"),
|
|
178
|
+
],
|
|
176
179
|
},
|
|
177
180
|
},
|
|
178
181
|
},
|
|
@@ -267,6 +270,12 @@ export default async (env) => {
|
|
|
267
270
|
port: "auto",
|
|
268
271
|
|
|
269
272
|
hot: true, // Enable hot module replacement with fallback to full reload
|
|
273
|
+
|
|
274
|
+
// hot: "only",
|
|
275
|
+
static: {
|
|
276
|
+
watch: false,
|
|
277
|
+
},
|
|
278
|
+
|
|
270
279
|
client: {
|
|
271
280
|
logging: "verbose",
|
|
272
281
|
// logging: "info",
|
|
@@ -287,6 +296,10 @@ export default async (env) => {
|
|
|
287
296
|
index: false, // enable root proxying
|
|
288
297
|
|
|
289
298
|
writeToDisk: (filePath) => {
|
|
299
|
+
// // // SHORT_CIRCUIT FOR TESTING
|
|
300
|
+
// // console.log("DEBUG writeToDisk:", { filePath });
|
|
301
|
+
// return true;
|
|
302
|
+
|
|
290
303
|
/**
|
|
291
304
|
* Note: If this is an async function, it will write everything to disk
|
|
292
305
|
*
|
|
@@ -331,9 +344,9 @@ export default async (env) => {
|
|
|
331
344
|
}
|
|
332
345
|
|
|
333
346
|
// SHORT_CIRCUIT FOR TESTING
|
|
334
|
-
return true;
|
|
347
|
+
// return true;
|
|
335
348
|
|
|
336
|
-
console.log("DEBUG writeToDisk:", { filePath });
|
|
349
|
+
// console.log("DEBUG writeToDisk:", { filePath });
|
|
337
350
|
return false;
|
|
338
351
|
},
|
|
339
352
|
// stats,
|
|
@@ -397,9 +410,6 @@ export default async (env) => {
|
|
|
397
410
|
paths: [
|
|
398
411
|
// Watch all PHP, HTML, SVG, and JSON files in the theme directory
|
|
399
412
|
path.resolve(config.src, "..") + "/**/*.{php,html,svg,json}",
|
|
400
|
-
// Watch CSS files in dist to workaround a bug in mini-css-extract-plugin
|
|
401
|
-
// @link https://github.com/webpack/mini-css-extract-plugin/issues/730
|
|
402
|
-
path.resolve(config.dist, "..") + "/**/*.css",
|
|
403
413
|
],
|
|
404
414
|
options: {
|
|
405
415
|
ignored: [
|
|
@@ -407,12 +417,10 @@ export default async (env) => {
|
|
|
407
417
|
"**/vendor/**",
|
|
408
418
|
"**/node_modules/**",
|
|
409
419
|
"**/dist/**",
|
|
410
|
-
"!**/dist/**/*.css",
|
|
411
420
|
],
|
|
412
|
-
ignoreInitial: false,
|
|
421
|
+
ignoreInitial: false,
|
|
413
422
|
ignorePermissionErrors: true,
|
|
414
423
|
usePolling: false,
|
|
415
|
-
// interval: pollIntervalDebug,
|
|
416
424
|
},
|
|
417
425
|
},
|
|
418
426
|
|
|
@@ -13,15 +13,26 @@ export class DependencyManifestPlugin {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
apply(compiler) {
|
|
16
|
+
|
|
17
|
+
// TODO: Switch this to tapPromise and make the function async
|
|
16
18
|
compiler.hooks.emit.tapAsync(this.name, (compilation, callback) => {
|
|
17
19
|
// const logger = compilation.getLogger("dependency-manifest-plugin");
|
|
18
|
-
|
|
19
20
|
// logger.info(compilation.namedChunkGroups.keys());
|
|
20
21
|
|
|
22
|
+
// console.log(
|
|
23
|
+
// "in DependencyManifestPlugin emit hook",
|
|
24
|
+
// Object.keys(compilation),
|
|
25
|
+
// );
|
|
26
|
+
|
|
27
|
+
console.log(Array.from(compilation.namedChunkGroups.keys()))
|
|
28
|
+
|
|
21
29
|
Array.from(compilation.namedChunkGroups.entries()).forEach(
|
|
22
30
|
([key, group]) => {
|
|
23
31
|
this.manifest[key] = group.chunks.reduce(
|
|
24
32
|
(entry, chunk) => {
|
|
33
|
+
|
|
34
|
+
// console.log({ files: Array.from(chunk.files) });
|
|
35
|
+
|
|
25
36
|
Array.from(chunk.files)
|
|
26
37
|
/**
|
|
27
38
|
* hot-update files will stomp on the main file, filter them out
|
|
@@ -29,13 +40,19 @@ export class DependencyManifestPlugin {
|
|
|
29
40
|
.filter((file) => !file.includes("hot-update"))
|
|
30
41
|
.forEach((file) => {
|
|
31
42
|
const { chunkGraph } = compilation;
|
|
43
|
+
|
|
44
|
+
// console.log({file})
|
|
32
45
|
const ext = path.extname(file);
|
|
33
46
|
|
|
34
47
|
const filepath = path.resolve(
|
|
35
48
|
compiler.options.output.publicPath,
|
|
36
|
-
file
|
|
49
|
+
file,
|
|
37
50
|
);
|
|
38
51
|
|
|
52
|
+
// const fullPath = path.resolve(compiler.options.output.path, file);
|
|
53
|
+
// const stats = fs.statSync(fullPath);
|
|
54
|
+
// console.log({ file, size: stats.size });
|
|
55
|
+
|
|
39
56
|
let silo, fileKey;
|
|
40
57
|
/**
|
|
41
58
|
* If the chunk has one or more entryModules, it's a file
|
|
@@ -51,13 +68,16 @@ export class DependencyManifestPlugin {
|
|
|
51
68
|
|
|
52
69
|
entry[silo][fileKey] = filepath;
|
|
53
70
|
});
|
|
71
|
+
// console.log({entry})
|
|
54
72
|
return entry;
|
|
55
73
|
},
|
|
56
|
-
{ files: {}, dependencies: {} }
|
|
74
|
+
{ files: {}, dependencies: {} },
|
|
57
75
|
);
|
|
58
|
-
}
|
|
76
|
+
},
|
|
59
77
|
);
|
|
60
78
|
|
|
79
|
+
console.log(this.manifest);
|
|
80
|
+
|
|
61
81
|
callback();
|
|
62
82
|
});
|
|
63
83
|
|
|
@@ -66,7 +86,7 @@ export class DependencyManifestPlugin {
|
|
|
66
86
|
return await fs.outputJSON(
|
|
67
87
|
path.resolve(compiler.options.output.path, this.config.manifestFile),
|
|
68
88
|
this.manifest,
|
|
69
|
-
{ spaces: 2 }
|
|
89
|
+
{ spaces: 2 },
|
|
70
90
|
);
|
|
71
91
|
}
|
|
72
92
|
console.log("in DependencyManifestPlugin afterEmit");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ideasonpurpose/build-tools-wordpress",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.2",
|
|
4
4
|
"description": "Build scripts and dependencies for IOP's WordPress development environments.",
|
|
5
5
|
"homepage": "https://github.com/ideasonpurpose/build-tools-wordpress#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -36,34 +36,35 @@
|
|
|
36
36
|
"@ideasonpurpose/prettier-config": "^1.0.1",
|
|
37
37
|
"@ideasonpurpose/stylelint-config": "^1.1.4",
|
|
38
38
|
"@prettier/plugin-php": "^0.24.0",
|
|
39
|
-
"@rollup/plugin-commonjs": "^
|
|
39
|
+
"@rollup/plugin-commonjs": "^29.0.0",
|
|
40
40
|
"@rollup/plugin-json": "^6.1.0",
|
|
41
41
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
42
42
|
"@svgr/webpack": "^8.1.0",
|
|
43
|
-
"@wordpress/dependency-extraction-webpack-plugin": "^6.
|
|
43
|
+
"@wordpress/dependency-extraction-webpack-plugin": "^6.36.0",
|
|
44
44
|
"ansi-html": "^0.0.9",
|
|
45
45
|
"archiver": "^7.0.1",
|
|
46
46
|
"auto-changelog": "^2.5.0",
|
|
47
|
-
"autoprefixer": "^10.4.
|
|
47
|
+
"autoprefixer": "^10.4.23",
|
|
48
48
|
"babel-loader": "^10.0.0",
|
|
49
|
-
"caniuse-lite": "^1.0.
|
|
49
|
+
"caniuse-lite": "^1.0.30001761",
|
|
50
50
|
"chalk": "^5.6.2",
|
|
51
51
|
"chalk-cli": "^6.0.0",
|
|
52
52
|
"classnames": "^2.5.1",
|
|
53
|
-
"cli-truncate": "^5.1.
|
|
53
|
+
"cli-truncate": "^5.1.1",
|
|
54
54
|
"copy-webpack-plugin": "^13.0.1",
|
|
55
55
|
"cosmiconfig": "^9.0.0",
|
|
56
56
|
"cross-env": "^10.1.0",
|
|
57
57
|
"css-loader": "^7.1.2",
|
|
58
|
-
"cssnano": "^7.1.
|
|
58
|
+
"cssnano": "^7.1.2",
|
|
59
59
|
"dotenv": "^17.2.3",
|
|
60
|
-
"esbuild-loader": "^4.4.
|
|
61
|
-
"eslint": "^9.
|
|
60
|
+
"esbuild-loader": "^4.4.1",
|
|
61
|
+
"eslint": "^9.39.2",
|
|
62
62
|
"filesize": "^11.0.13",
|
|
63
|
-
"fs-extra": "^11.3.
|
|
64
|
-
"globby": "^
|
|
63
|
+
"fs-extra": "^11.3.3",
|
|
64
|
+
"globby": "^16.0.0",
|
|
65
|
+
"html-webpack-plugin": "^5.6.5",
|
|
65
66
|
"http-proxy": "^1.18.1",
|
|
66
|
-
"humanize-duration": "^3.33.
|
|
67
|
+
"humanize-duration": "^3.33.2",
|
|
67
68
|
"image-minimizer-webpack-plugin": "^4.1.4",
|
|
68
69
|
"is-text-path": "^3.0.0",
|
|
69
70
|
"lodash": "^4.17.21",
|
|
@@ -72,31 +73,32 @@
|
|
|
72
73
|
"postcss": "^8.5.6",
|
|
73
74
|
"postcss-loader": "^8.2.0",
|
|
74
75
|
"postcss-scss": "^4.0.9",
|
|
75
|
-
"prettier": "^3.
|
|
76
|
+
"prettier": "^3.7.4",
|
|
76
77
|
"pretty-hrtime": "^1.0.3",
|
|
77
|
-
"read-package-up": "^
|
|
78
|
+
"read-package-up": "^12.0.0",
|
|
78
79
|
"replacestream": "^4.0.3",
|
|
79
|
-
"sass-embedded": "^1.
|
|
80
|
-
"sass-loader": "^16.0.
|
|
80
|
+
"sass-embedded": "^1.97.1",
|
|
81
|
+
"sass-loader": "^16.0.6",
|
|
81
82
|
"semver": "^7.7.3",
|
|
82
|
-
"sharp": "^0.34.
|
|
83
|
-
"sort-package-json": "^3.
|
|
83
|
+
"sharp": "^0.34.5",
|
|
84
|
+
"sort-package-json": "^3.6.0",
|
|
84
85
|
"string-length": "^6.0.0",
|
|
85
86
|
"style-loader": "^4.0.0",
|
|
86
87
|
"svgo": "^4.0.0",
|
|
87
88
|
"svgo-loader": "^4.0.0",
|
|
88
89
|
"version-everything": "^0.11.4",
|
|
89
|
-
"webpack": "^5.
|
|
90
|
-
"webpack-bundle-analyzer": "^
|
|
90
|
+
"webpack": "^5.104.1",
|
|
91
|
+
"webpack-bundle-analyzer": "^5.1.0",
|
|
91
92
|
"webpack-dev-middleware": "^7.4.5",
|
|
92
|
-
"webpack-dev-server": "^5.2.2"
|
|
93
|
+
"webpack-dev-server": "^5.2.2",
|
|
94
|
+
"webpack-manifest-plugin": "^6.0.1"
|
|
93
95
|
},
|
|
94
96
|
"peerDependencies": {
|
|
95
97
|
"webpack-cli": "^6.0.1"
|
|
96
98
|
},
|
|
97
99
|
"devDependencies": {
|
|
98
|
-
"@vitest/coverage-v8": "^
|
|
99
|
-
"vitest": "^
|
|
100
|
+
"@vitest/coverage-v8": "^4.0.16",
|
|
101
|
+
"vitest": "^4.0.16"
|
|
100
102
|
},
|
|
101
103
|
"version-everything": {
|
|
102
104
|
"files": [
|