Skip to content

Commit 4d486c9

Browse files
committed
chore(release): prepare release 5.0.4
1 parent 6a08665 commit 4d486c9

File tree

7 files changed

+51
-4
lines changed

7 files changed

+51
-4
lines changed

dist/AureliaDependenciesPlugin.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
Object.defineProperty(exports, "__esModule", { value: true });
33
exports.AureliaDependenciesPlugin = void 0;
44
const IncludeDependency_1 = require("./IncludeDependency");
5+
const ClassSerializer_1 = require("./ClassSerializer");
56
const webpack = require("webpack");
67
const PreserveExportsPlugin_1 = require("./PreserveExportsPlugin");
78
const BasicEvaluatedExpression = require("webpack/lib/javascript/BasicEvaluatedExpression");
@@ -18,6 +19,7 @@ class AureliaDependency extends IncludeDependency_1.IncludeDependency {
1819
return webpack.Dependency.EXPORTS_OBJECT_REFERENCED;
1920
}
2021
}
22+
webpack.util.serialization.register(AureliaDependency, "AureliaDependency", "AureliaDependency", new ClassSerializer_1.ClassSerializer(AureliaDependency));
2123
class Template {
2224
apply(dep, source) {
2325
source.replace(dep.range[0], dep.range[1] - 1, "'" + dep.request.replace(/^async(?:\?[^!]*)?!/, "") + "'");

dist/IncludeDependency.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ exports.Template = exports.IncludeDependency = void 0;
44
const PreserveExportsPlugin_1 = require("./PreserveExportsPlugin");
55
const PreserveModuleNamePlugin_1 = require("./PreserveModuleNamePlugin");
66
const webpack = require("webpack");
7+
const ClassSerializer_1 = require("./ClassSerializer");
78
class IncludeDependency extends webpack.dependencies.ModuleDependency {
89
constructor(request, options) {
910
let chunk = options && options.chunk;
@@ -27,7 +28,16 @@ class IncludeDependency extends webpack.dependencies.ModuleDependency {
2728
var _a;
2829
return (_a = this.options) === null || _a === void 0 ? void 0 : _a.exports;
2930
}
31+
serialize(context) {
32+
context.write(this.options);
33+
super.serialize(context);
34+
}
35+
deserialize(context) {
36+
this.options = context.read();
37+
super.deserialize(context);
38+
}
3039
}
3140
exports.IncludeDependency = IncludeDependency;
3241
;
42+
webpack.util.serialization.register(IncludeDependency, "IncludeDependency", "IncludeDependency", new ClassSerializer_1.ClassSerializer(IncludeDependency));
3343
exports.Template = webpack.dependencies.NullDependency.Template;

dist/PreserveModuleNamePlugin.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
Object.defineProperty(exports, "__esModule", { value: true });
33
exports.PreserveModuleNamePlugin = exports.preserveModuleName = void 0;
44
const path = require("path");
5+
const Webpack = require("webpack");
56
const logger_1 = require("./logger");
67
exports.preserveModuleName = Symbol();
78
const TAP_NAME = "Aurelia:PreserveModuleName";
@@ -16,6 +17,13 @@ class PreserveModuleNamePlugin {
1617
this.isDll = isDll;
1718
}
1819
apply(compiler) {
20+
// Override NormalModule serializer: "preserveModuleName" should be serialized
21+
// to ensure correct module serialization of conventional dependencies (ConventionDependenciesPlugin)
22+
// when "webpack filesystem cache" is enabled, https://github.com/aurelia/webpack-plugin/issues/199
23+
const isFilesystemCacheEnabled = typeof (compiler.options.cache) == 'object' && compiler.options.cache.type == 'filesystem';
24+
if (isFilesystemCacheEnabled) {
25+
overrideNormalModuleSerializer();
26+
}
1927
compiler.hooks.compilation.tap(TAP_NAME, compilation => {
2028
compilation.hooks.beforeModuleIds.tap(TAP_NAME, $modules => {
2129
let modules = Array.from($modules);
@@ -177,3 +185,23 @@ function removeLoaders(request) {
177185
let lastBang = request.lastIndexOf("!");
178186
return lastBang < 0 ? request : request.substr(lastBang + 1);
179187
}
188+
let overridden = false;
189+
function overrideNormalModuleSerializer() {
190+
if (overridden) {
191+
return;
192+
}
193+
overridden = true;
194+
const originalSerialize = Webpack.NormalModule.prototype.serialize;
195+
Webpack.NormalModule.prototype.serialize = function (context) {
196+
context.write(this[exports.preserveModuleName]);
197+
originalSerialize.call(this, context);
198+
};
199+
const originalDeserialize = Webpack.NormalModule.prototype.deserialize;
200+
Webpack.NormalModule.prototype.deserialize = function (context) {
201+
const preserve = context.read();
202+
if (preserve) {
203+
this[exports.preserveModuleName] = preserve;
204+
}
205+
originalDeserialize.call(this, context);
206+
};
207+
}

dist/types/IncludeDependency.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ export declare class IncludeDependency extends webpack.dependencies.ModuleDepend
99
getReferencedExports(moduleGraph: webpack.ModuleGraph): (string[] | ReferencedExport)[];
1010
get [preserveModuleName](): boolean;
1111
get [dependencyImports](): string[] | undefined;
12+
serialize(context: any): void;
13+
deserialize(context: any): void;
1214
}
1315
export declare type NullDependencyTemplate = typeof webpack.dependencies.NullDependency.Template;
1416
export declare const Template: NullDependencyTemplate;

doc/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 5.0.4
2+
3+
Fix webpack serialization when a component module is imported via the normal way
4+
15
## 5.0.3
26

37
Fix webpack v5.52.0 error with mini-css-extract-plugin

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "aurelia-webpack-plugin",
3-
"version": "5.0.3",
3+
"version": "5.0.4",
44
"description": "A plugin for webpack that enables bundling Aurelia applications.",
55
"keywords": [
66
"aurelia",
@@ -35,7 +35,8 @@
3535
"build:watch": "tsc --watch",
3636
"test": "cd tests/app-basic && npm run build:ci",
3737
"preversion": "npm run test",
38-
"version": "npm run build && git add ."
38+
"version": "npm run build && git add .",
39+
"cut-release": "npm version --git-tag-version false --"
3940
},
4041
"repository": {
4142
"type": "git",

0 commit comments

Comments
 (0)