diff --git a/web/ecashaddrjs/README.md b/web/ecashaddrjs/README.md
--- a/web/ecashaddrjs/README.md
+++ b/web/ecashaddrjs/README.md
@@ -16,7 +16,7 @@
 
 ### Manually
 
-You may also download the distribution file manually and place it within your third-party scripts directory: [dist/cashaddrjs-1.0.7.min.js](https://unpkg.com/ecashaddrjs@1.0.7/dist/cashaddrjs-1.0.7.min.js).
+You may also download the distribution file manually and place it within your third-party scripts directory: [dist/cashaddrjs.min.js](https://unpkg.com/ecashaddrjs/dist/cashaddrjs.min.js).
 
 ## Usage
 
diff --git a/web/ecashaddrjs/package-lock.json b/web/ecashaddrjs/package-lock.json
--- a/web/ecashaddrjs/package-lock.json
+++ b/web/ecashaddrjs/package-lock.json
@@ -20,10 +20,8 @@
                 "debug": "^4.3.4",
                 "jsdoc": "^4.0.2",
                 "mocha": "^10.2.0",
-                "mustache": "^4.2.0",
                 "nyc": "^15.1.0",
                 "random-js": "^2.1.0",
-                "shx": "^0.3.4",
                 "webpack": "^5.76.2",
                 "webpack-cli": "^5.0.1"
             }
@@ -3334,15 +3332,6 @@
             "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
             "dev": true
         },
-        "node_modules/interpret": {
-            "version": "1.4.0",
-            "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
-            "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
-            "dev": true,
-            "engines": {
-                "node": ">= 0.10"
-            }
-        },
         "node_modules/is-core-module": {
             "version": "2.11.0",
             "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
@@ -4041,15 +4030,6 @@
                 "node": "*"
             }
         },
-        "node_modules/minimist": {
-            "version": "1.2.8",
-            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
-            "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
-            "dev": true,
-            "funding": {
-                "url": "https://github.com/sponsors/ljharb"
-            }
-        },
         "node_modules/mkdirp": {
             "version": "1.0.4",
             "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
@@ -4221,15 +4201,6 @@
             "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
             "dev": true
         },
-        "node_modules/mustache": {
-            "version": "4.2.0",
-            "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
-            "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
-            "dev": true,
-            "bin": {
-                "mustache": "bin/mustache"
-            }
-        },
         "node_modules/nanoid": {
             "version": "3.3.3",
             "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
@@ -4729,18 +4700,6 @@
                 "safe-buffer": "^5.1.0"
             }
         },
-        "node_modules/rechoir": {
-            "version": "0.6.2",
-            "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
-            "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
-            "dev": true,
-            "dependencies": {
-                "resolve": "^1.1.6"
-            },
-            "engines": {
-                "node": ">= 0.10"
-            }
-        },
         "node_modules/regenerate": {
             "version": "1.4.2",
             "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
@@ -5026,39 +4985,6 @@
                 "node": ">=8"
             }
         },
-        "node_modules/shelljs": {
-            "version": "0.8.5",
-            "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
-            "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
-            "dev": true,
-            "dependencies": {
-                "glob": "^7.0.0",
-                "interpret": "^1.0.0",
-                "rechoir": "^0.6.2"
-            },
-            "bin": {
-                "shjs": "bin/shjs"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/shx": {
-            "version": "0.3.4",
-            "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz",
-            "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==",
-            "dev": true,
-            "dependencies": {
-                "minimist": "^1.2.3",
-                "shelljs": "^0.8.5"
-            },
-            "bin": {
-                "shx": "lib/cli.js"
-            },
-            "engines": {
-                "node": ">=6"
-            }
-        },
         "node_modules/signal-exit": {
             "version": "3.0.7",
             "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
@@ -8238,12 +8164,6 @@
             "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
             "dev": true
         },
-        "interpret": {
-            "version": "1.4.0",
-            "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
-            "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
-            "dev": true
-        },
         "is-core-module": {
             "version": "2.11.0",
             "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
@@ -8778,12 +8698,6 @@
                 "brace-expansion": "^1.1.7"
             }
         },
-        "minimist": {
-            "version": "1.2.8",
-            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
-            "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
-            "dev": true
-        },
         "mkdirp": {
             "version": "1.0.4",
             "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
@@ -8914,12 +8828,6 @@
             "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
             "dev": true
         },
-        "mustache": {
-            "version": "4.2.0",
-            "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
-            "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
-            "dev": true
-        },
         "nanoid": {
             "version": "3.3.3",
             "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
@@ -9297,15 +9205,6 @@
                 "safe-buffer": "^5.1.0"
             }
         },
-        "rechoir": {
-            "version": "0.6.2",
-            "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
-            "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
-            "dev": true,
-            "requires": {
-                "resolve": "^1.1.6"
-            }
-        },
         "regenerate": {
             "version": "1.4.2",
             "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
@@ -9530,27 +9429,6 @@
             "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
             "dev": true
         },
-        "shelljs": {
-            "version": "0.8.5",
-            "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
-            "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
-            "dev": true,
-            "requires": {
-                "glob": "^7.0.0",
-                "interpret": "^1.0.0",
-                "rechoir": "^0.6.2"
-            }
-        },
-        "shx": {
-            "version": "0.3.4",
-            "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz",
-            "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==",
-            "dev": true,
-            "requires": {
-                "minimist": "^1.2.3",
-                "shelljs": "^0.8.5"
-            }
-        },
         "signal-exit": {
             "version": "3.0.7",
             "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
diff --git a/web/ecashaddrjs/package.json b/web/ecashaddrjs/package.json
--- a/web/ecashaddrjs/package.json
+++ b/web/ecashaddrjs/package.json
@@ -8,10 +8,9 @@
         "dist/"
     ],
     "scripts": {
-        "clean": "shx rm -rf dist/ docs/",
         "build": "webpack",
-        "test": "nyc --reporter=html --reporter=text mocha",
-        "readme": "mustache package.json README.tpl.md > README.md"
+        "prepublish": "npm run build",
+        "test": "nyc --reporter=html --reporter=text mocha"
     },
     "repository": {
         "type": "git",
@@ -42,10 +41,8 @@
         "debug": "^4.3.4",
         "jsdoc": "^4.0.2",
         "mocha": "^10.2.0",
-        "mustache": "^4.2.0",
         "nyc": "^15.1.0",
         "random-js": "^2.1.0",
-        "shx": "^0.3.4",
         "webpack": "^5.76.2",
         "webpack-cli": "^5.0.1"
     },
diff --git a/web/ecashaddrjs/webpack.config.js b/web/ecashaddrjs/webpack.config.js
--- a/web/ecashaddrjs/webpack.config.js
+++ b/web/ecashaddrjs/webpack.config.js
@@ -31,7 +31,7 @@
 module.exports = [
     Object.assign({}, base, {
         output: Object.assign({}, base.output, {
-            filename: 'cashaddrjs-' + pkg.version + '.js',
+            filename: 'cashaddrjs.js',
         }),
         optimization: {
             minimize: false,
@@ -39,7 +39,7 @@
     }),
     Object.assign({}, base, {
         output: Object.assign({}, base.output, {
-            filename: 'cashaddrjs-' + pkg.version + '.min.js',
+            filename: 'cashaddrjs.min.js',
         }),
     }),
 ];