hunk.code_window:     watch: buildOptions.watch,
       watchOptions: getWatchOptions(buildOptions.poll),
       performance: {
         hints: false,
       },
       ignoreWarnings: IGNORE_WARNINGS,
       module: {
         // Show an error for missing exports instead of a warning.
         strictExportPresence: true,
  
hunk.labels: keep keep keep keep keep replace keep keep keep
hunk.after_edit:     ignoreWarnings: [
         // Webpack 5+ has no facility to disable this warning.
         // System.import is used in @angular/core for deprecated string-form lazy routes
         /System.import\(\) is deprecated and will be removed soon/i,
         // https://github.com/webpack-contrib/source-map-loader/blob/b2de4249c7431dd8432da607e08f0f65e9d64219/src/index.js#L83
         /Failed to parse source map from/,
         // https://github.com/webpack-contrib/postcss-loader/blob/bd261875fdf9c596af4ffb3a1a73fe3c549befda/src/index.js#L153-L158
         /Add postcss as project dependency/,
       ],
  
hunk.file_path: packages/angular_devkit/build_angular/src/webpack/configs/common.ts
hunk.type: replace
file: import {
    killAllProcesses,
    waitForAnyProcessOutputToMatch,
    execAndWaitForOutputToMatch,
  } from '../../utils/process';
  import {writeFile, prependToFile, appendToFile} from '../../utils/fs';
  
  
  const doneRe =
    / Compiled successfully.|: Failed to compile./;
  const errorRe = /Error/;
  
  
  export default function() {
    // TODO(architect): Delete this test. It is now in devkit/build-angular.
  
    if (process.platform.startsWith('win')) {
      return Promise.resolve();
    }
  
    return Promise.resolve()
      // Create and import files.
      .then(() => writeFile('src/funky2.ts', `
        export function funky2(value: string): string {
          return value + 'hello';
        }
      `))
      .then(() => writeFile('src/funky.ts', `
        export * from './funky2';
      `))
      .then(() => prependToFile('src/main.ts', `
        import { funky2 } from './funky';
      `))
      .then(() => appendToFile('src/main.ts', `
        console.log(funky2('town'));
      `))
      // Should trigger a rebuild, no error expected.
      .then(() => execAndWaitForOutputToMatch('ng', ['serve'], doneRe))
      // Make an invalid version of the file.
      // Should trigger a rebuild, this time an error is expected.
      .then(() => Promise.all([
        waitForAnyProcessOutputToMatch(errorRe, 20000),
        writeFile('src/funky2.ts', `
          export function funky2(value: number): number {
            return value + 1;
          }
        `)
      ]))
      .then((results) => {
        const stderr = results[0].stderr;
        if (!/Error: (.*src\/)?main\.ts/.test(stderr)) {
          throw new Error('Expected an error but none happened.');
        }
      })
      // Change an UNRELATED file and the error should still happen.
      // Should trigger a rebuild, this time an error is also expected.
      .then(() => Promise.all([
        waitForAnyProcessOutputToMatch(errorRe, 20000),
        appendToFile('src/app/app.module.ts', `
          function anything(): number { return 1; }
        `)
      ]))
      .then((results) => {
        const stderr = results[0].stderr;
        if (!/Error: (.*src\/)?main\.ts/.test(stderr)) {
          throw new Error('Expected an error to still be there but none was.');
        }
      })
      // Fix the error!
      .then(() => Promise.all([
        waitForAnyProcessOutputToMatch(doneRe, 20000),
        writeFile('src/funky2.ts', `
          export function funky2(value: string): string {
            return value + 'hello';
          }
        `)
      ]))
      .then((results) => {
        const stderr = results[0].stderr;
        if (/Error: (.*src\/)?main\.ts/.test(stderr)) {
          throw new Error('Expected no error but an error was shown.');
        }
      })
      .then(() => killAllProcesses(), (err: any) => {
        killAllProcesses();
        throw err;
      });
  }
  