Skip to content

Commit c5cef28

Browse files
committed
bug(build): Remove moduleId from components when building
Fixes #3576
1 parent 142c518 commit c5cef28

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

packages/@ngtools/webpack/src/loader.ts

+20-1
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,23 @@ function _replaceBootstrap(plugin: AotPlugin, refactor: TypeScriptFileRefactor)
8787
refactor.insertImport(entryModule.className + 'NgFactory', ngFactoryPath);
8888
}
8989

90+
function _removeModuleId(refactor: TypeScriptFileRefactor) {
91+
const sourceFile = refactor.sourceFile;
92+
93+
refactor.findAstNodes(sourceFile, ts.SyntaxKind.ObjectLiteralExpression, true)
94+
// Get all their property assignments.
95+
.filter((node: ts.ObjectLiteralExpression) =>
96+
node.properties.some(prop => prop.name.getText() == 'moduleId'))
97+
.forEach((node: ts.ObjectLiteralExpression) => {
98+
const moduleIdProp = node.properties.filter((prop: ts.ObjectLiteralElement, idx: number) => {
99+
return prop.name.getText() == 'moduleId';
100+
})[0];
101+
// get the trailing comma
102+
const moduleIdCommaProp = moduleIdProp.parent.getChildAt(1).getChildren()[1];
103+
refactor.removeNodes(moduleIdProp, moduleIdCommaProp);
104+
});
105+
}
106+
90107
function _replaceResources(refactor: TypeScriptFileRefactor): void {
91108
const sourceFile = refactor.sourceFile;
92109

@@ -163,7 +180,9 @@ export function ngcLoader(source: string) {
163180
.then(() => _removeDecorators(refactor))
164181
.then(() => _replaceBootstrap(plugin, refactor));
165182
} else {
166-
return _replaceResources(refactor);
183+
return Promise.resolve()
184+
.then(() => _replaceResources(refactor))
185+
.then(() => _removeModuleId(refactor));
167186
}
168187
})
169188
.then(() => {

packages/@ngtools/webpack/src/refactor.ts

+4
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,10 @@ export class TypeScriptFileRefactor {
169169
this._changed = true;
170170
}
171171

172+
removeNodes(...nodes: ts.Node[]) {
173+
nodes.forEach(node => this.removeNode(node));
174+
}
175+
172176
replaceNode(node: ts.Node, replacement: string) {
173177
let replaceSymbolName: boolean = node.kind === ts.SyntaxKind.Identifier;
174178
this._sourceString.overwrite(node.getStart(this._sourceFile),

0 commit comments

Comments
 (0)