diff --git a/packages/angular_devkit/build_angular/src/extract-i18n/index.ts b/packages/angular_devkit/build_angular/src/extract-i18n/index.ts index 005fc637bd66..3db7b37d312f 100644 --- a/packages/angular_devkit/build_angular/src/extract-i18n/index.ts +++ b/packages/angular_devkit/build_angular/src/extract-i18n/index.ts @@ -141,6 +141,8 @@ export async function execute( }, sourceMap: { scripts: true, + styles: false, + vendor: true, }, buildOptimizer: false, i18nLocale: options.i18nLocale || i18n.sourceLocale, @@ -187,7 +189,7 @@ export async function execute( module: { rules: [ { - test: /\.ts$/, + test: /\.[t|j]s$/, loader: require.resolve('./ivy-extract-loader'), options: { messageHandler: (messages: LocalizeMessage[]) => ivyMessages.push(...messages), diff --git a/tests/legacy-cli/e2e/tests/i18n/extract-ivy-libraries.ts b/tests/legacy-cli/e2e/tests/i18n/extract-ivy-libraries.ts new file mode 100644 index 000000000000..c56665b9903b --- /dev/null +++ b/tests/legacy-cli/e2e/tests/i18n/extract-ivy-libraries.ts @@ -0,0 +1,72 @@ +import { getGlobalVariable } from '../../utils/env'; +import { expectFileToMatch, replaceInFile, writeFile } from '../../utils/fs'; +import { ng, npm } from '../../utils/process'; +import { expectToFail } from '../../utils/utils'; +import { readNgVersion } from '../../utils/version'; + +export default async function() { + // Ivy only test + if (getGlobalVariable('argv')['ve']) { + return; + } + + // Setup a library + await ng('generate', 'library', 'i18n-lib-test'); + await replaceInFile( + 'projects/i18n-lib-test/src/lib/i18n-lib-test.component.ts', + '
', + '
', + ); + + // Build library + await ng('build', 'i18n-lib-test'); + + // Consume library in application + await writeFile( + 'src/app/app.module.ts', + ` + import { BrowserModule } from '@angular/platform-browser'; + import { NgModule } from '@angular/core'; + import { AppComponent } from './app.component'; + import { I18nLibTestModule } from 'i18n-lib-test'; + + @NgModule({ + declarations: [ + AppComponent + ], + imports: [ + BrowserModule, + I18nLibTestModule, + ], + providers: [], + bootstrap: [AppComponent] + }) + export class AppModule { } + `, + ); + + await writeFile( + 'src/app/app.component.html', + ` +
Hello world
+