I have a web worker that looks like this. This used to work fine in previous Angular versions:
/// <reference lib="webworker" /> import { ParseResult } from "papaparse"; import { readCSV } from '@fireflysemantics/csv'; addEventListener('message', ({ data }) => { const result: ParseResult<any> = readCSV(data) postMessage(result); });
If I comment out most of the worker:
/// <reference lib="webworker" /> import { ParseResult } from "papaparse"; //import { readCSV } from '@fireflysemantics/csv'; addEventListener('message', ({ data }) => { //const response = `worker response to ${data}`; //postMessage(response); });
Then it builds fine. If I comment in the line:
import { readCSV } from '@fireflysemantics/csv';
Then all these errors are generated:
Error: ./src/app/services/csv.worker.ts (./node_modules/worker-plugin/dist/loader.js?name=0!./src/app/services/csv.worker.ts) Module build failed (from ./node_modules/worker-plugin/dist/loader.js): Error: node_modules/@angular/cdk/a11y/aria-describer/aria-describer.d.ts:16:21 - error TS2304: Cannot find name 'Element'. 16 messageElement: Element; ~~~~~~~ at Object.addError (/home/ole/FireflySemantics/Repository/fireflysemantics/700-CSV/new-csv/csv2/node_modules/@ngtools/webpack/src/webpack-diagnostics.js:24:33) at /home/ole/FireflySemantics/Repository/fireflysemantics/700-CSV/new-csv/csv2/node_modules/@ngtools/webpack/src/ivy/diagnostics.js:19:39 at AngularWebpackPlugin.updateJitProgram (/home/ole/FireflySemantics/Repository/fireflysemantics/700-CSV/new-csv/csv2/node_modules/@ngtools/webpack/src/ivy/plugin.js:379:9) at /home/ole/FireflySemantics/Repository/fireflysemantics/700-CSV/new-csv/csv2/node_modules/@ngtools/webpack/src/ivy/plugin.js:157:24 at SyncHook.eval [as call] (eval at create (/home/ole/FireflySemantics/Repository/fireflysemantics/700-CSV/new-csv/csv2/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:19:10), <anonymous>:7:1) at SyncHook.lazyCompileHook (/home/ole/FireflySemantics/Repository/fireflysemantics/700-CSV/new-csv/csv2/node_modules/webpack/node_modules/tapable/lib/Hook.js:154:20) at Compiler.newCompilation (/home/ole/FireflySemantics/Repository/fireflysemantics/700-CSV/new-csv/csv2/node_modules/webpack/lib/Compiler.js:630:30) at /home/ole/FireflySemantics/Repository/fireflysemantics/700-CSV/new-csv/csv2/node_modules/webpack/lib/Compiler.js:667:29 at AsyncSeriesHook.eval [as callAsync] (eval at create (/home/ole/FireflySemantics/Repository/fireflysemantics/700-CSV/new-csv/csv2/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1) at AsyncSeriesHook.lazyCompileHook (/home/ole/FireflySemantics/Repository/fireflysemantics/700-CSV/new-csv/csv2/node_modules/webpack/node_modules/tapable/lib/Hook.js:154:20) at Compiler.compile (/home/ole/FireflySemantics/Repository/fireflysemantics/700-CSV/new-csv/csv2/node_modules/webpack/lib/Compiler.js:662:28) at Compiler.runAsChild (/home/ole/FireflySemantics/Repository/fireflysemantics/700-CSV/new-csv/csv2/node_modules/webpack/lib/Compiler.js:328:8) at Object.pitch (/home/ole/FireflySemantics/Repository/fireflysemantics/700-CSV/new-csv/csv2/node_modules/worker-plugin/dist/loader.js:81:18) @ ./src/app/services/csv.service.ts 1:0-148 @ ./src/app/app.component.ts @ ./src/app/app.module.ts @ ./src/main.ts @ multi ./src/main.ts Error: node_modules/@angular/cdk/a11y/aria-describer/aria-describer.d.ts:16:21 - error TS2304: Cannot find name 'Element'. 16 messageElement: Element; ~~~~~~~ Error: node_modules/@angular/cdk/a11y/aria-describer/aria-describer.d.ts:39:27 - error TS2304: Cannot find name 'Element'. 39 describe(hostElement: Element, message: string, role?: string): void; m ~~~~~~~ Error: node_modules/@angular/cdk/a11y/aria-describer/aria-describer.d.ts:43:27 - error TS2304: Cannot find name 'Element'. 43 describe(hostElement: Element, message: HTMLElement): void; ~~~~~~~ Error: node_modules/@angular/cdk/a11y/aria-describer/aria-describer.d.ts:43:45 - error TS2304: Cannot find name 'HTMLElement'. 43 describe(hostElement: Element, message: HTMLElement): void; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/aria-describer/aria-describer.d.ts:45:36 - error TS2304: Cannot find name 'Element'. 45 removeDescription(hostElement: Element, message: string, role?: string): void; ~~~~~~~ Error: node_modules/@angular/cdk/a11y/aria-describer/aria-describer.d.ts:47:36 - error TS2304: Cannot find name 'Element'. 47 removeDescription(hostElement: Element, message: HTMLElement): void; ~~~~~~~ Error: node_modules/@angular/cdk/a11y/aria-describer/aria-describer.d.ts:47:54 - error TS2304: Cannot find name 'HTMLElement'. 47 removeDescription(hostElement: Element, message: HTMLElement): void; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/fake-event-detection.d.ts:11:65 - error TS2304: Cannot find name 'TouchEvent'. 11 export declare function isFakeTouchstartFromScreenReader(event: TouchEvent): boolean; ~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/fake-event-detection.d.ts:9:64 - error TS2304: Cannot find name 'MouseEvent'. 9 export declare function isFakeMousedownFromScreenReader(event: MouseEvent): boolean; ~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-monitor/focus-monitor.d.ts:113:22 - error TS2304: Cannot find name 'HTMLElement'. 113 monitor(element: HTMLElement, checkChildren?: boolean): Observable<FocusOrigin>; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-monitor/focus-monitor.d.ts:121:33 - error TS2304: Cannot find name 'HTMLElement'. 121 monitor(element: ElementRef<HTMLElement>, checkChildren?: boolean): Observable<FocusOrigin>; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-monitor/focus-monitor.d.ts:126:29 - error TS2304: Cannot find name 'HTMLElement'. 126 stopMonitoring(element: HTMLElement): void; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-monitor/focus-monitor.d.ts:131:40 - error TS2304: Cannot find name 'HTMLElement'. 131 stopMonitoring(element: ElementRef<HTMLElement>): void; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-monitor/focus-monitor.d.ts:138:23 - error TS2304: Cannot find name 'HTMLElement'. 138 focusVia(element: HTMLElement, origin: FocusOrigin, options?: FocusOptions): void; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-monitor/focus-monitor.d.ts:145:34 - error TS2304: Cannot find name 'HTMLElement'. 145 focusVia(element: ElementRef<HTMLElement>, origin: FocusOrigin, options?: FocusOptions): void; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-monitor/focus-monitor.d.ts:182:20 - error TS2304: Cannot find name 'FocusEvent'. 182 _onBlur(event: FocusEvent, element: HTMLElement): void; ~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-monitor/focus-monitor.d.ts:182:41 - error TS2304: Cannot find name 'HTMLElement'. 182 _onBlur(event: FocusEvent, element: HTMLElement): void; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-monitor/focus-monitor.d.ts:210:41 - error TS2304: Cannot find name 'HTMLElement'. 210 constructor(_elementRef: ElementRef<HTMLElement>, _focusMonitor: FocusMonitor); ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-monitor/focus-monitor.d.tsm:97:27 - error TS2304: Cannot find name 'Document'. 97 protected _document?: Document; ~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-trap/configurable-focus-trap-factory.d.ts:29:21 - error TS2304: Cannot find name 'HTMLElement'. 29 create(element: HTMLElement, config?: ConfigurableFocusTrapConfig): ConfigurableFocusTrap; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-trap/configurable-focus-trap-factory.d.ts:34:21 - error TS2304: Cannot find name 'HTMLElement'. 34 create(element: HTMLElement, deferCaptureElements: boolean): ConfigurableFocusTrap; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-trap/configurable-focus-trap.d.ts:26:100 - error TS2304: Cannot find name 'Document'. 26 constructor(_element: HTMLElement, _checker: InteractivityChecker, _ngZone: NgZone, _document: Document, _focusTrapManager: FocusTrapManager, _inertStrategy: FocusTrapInertStrategy, config: ConfigurableFocusTrapConfig); ~~~~~~~~ m Error: node_modules/@angular/cdk/a11y/focus-trap/configurable-focus-trap.d.ts:26:27 - error TS2304: Cannot find name 'HTMLElement'. 26 constructor(_element: HTMLElement, _checker: InteractivityChecker, _ngZone: NgZone, _document: Document, _focusTrapManager: FocusTrapManager, _inertStrategy: FocusTrapInertStrategy, config: ConfigurableFocusTrapConfig); ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-trap/focus-trap.d.ts:129:21 - error TS2304: Cannot find name 'HTMLElement'. 129 create(element: HTMLElement, deferCaptureElements?: boolean): FocusTrap; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-trap/focus-trap.d.ts:151:41 - error TS2304: Cannot find name 'HTMLElement'. 151 constructor(_elementRef: ElementRef<HTMLElement>, _focusTrapFactory: FocusTrapFactory, _document: any); ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-trap/focus-trap.d.ts:23:24 - error TS2304: Cannot find name 'HTMLElement'. 23 readonly _element: HTMLElement; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-trap/focus-trap.d.ts:26:25 - error TS2304: Cannot find name 'Document'. 26 readonly _document: Document; ~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-trap/focus-trap.d.ts:36:100 - error TS2304: Cannot find name 'Document'. 36 constructor(_element: HTMLElement, _checker: InteractivityChecker, _ngZone: NgZone, _document: Document, deferAnchors?: boolean); ~~~~~~~~ Error: node_modules/@angular/cdk/a11y/focus-trap/focus-trap.d.ts:36:27 - error TS2304: Cannot find name 'HTMLElement'. 36 constructor(_element: HTMLElement, _checker: InteractivityChecker, _ngZone: NgZone, _document: Document, deferAnchors?: boolean); ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/interactivity-checker/interactivity-checker.d.ts:32:25 - error TS2304: Cannot find name 'HTMLElement'. 32 isDisabled(element: HTMLElement): boolean; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/interactivity-checker/interactivity-checker.d.ts:41:24 - error TS2304: Cannot find name 'HTMLElement'. 41 isVisible(element: HTMLElement): boolean; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/interactivity-checker/interactivity-checker.d.ts:49:25 - error TS2304: Cannot find name 'HTMLElement'. 49 isTabbable(element: HTMLElement): boolean; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/interactivity-checker/interactivity-checker.d.ts:57:26 - error TS2304: Cannot find name 'HTMLElement'. 57 isFocusable(element: HTMLElement, config?: IsFocusableConfig): boolean; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/key-manager/list-key-manager.d.ts:101:22 - error TS2304: Cannot find name 'KeyboardEvent'. 101 onKeydown(event: KeyboardEvent): void; ~~~~~~~~~~~~~ Error: node_modules/@angular/cdk/a11y/live-announcer/live-announcer-tokens.d.ts:11:67 - error TS2304: Cannot find name 'HTMLElement'. 11 export declare const LIVE_ANNOUNCER_ELEMENT_TOKEN: InjectionToken<HTMLElement | null>; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/bidi/dir-document-token.d.ts:24:51 - error TS2304: Cannot find name 'Document'. 24 export declare const DIR_DOCUMENT: InjectionToken<Document>; ~~~~~~~~ Error: node_modules/@angular/cdk/bidi/dir-document-token.d.ts:26:49 - error TS2304: Cannot find name 'Document'. 26 export declare function DIR_DOCUMENT_FACTORY(): Document; ~~~~~~~~ Error: node_modules/@angular/cdk/observers/observe-content.d.ts:17:22 - error TS2304: Cannot find name 'MutationCallback'. 17 create(callback: MutationCallback): MutationObserver | null; ~~~~~~~~~~~~~~~~ Error: node_modules/@angular/cdk/observers/observe-content.d.ts:17:41 - error TS2304: Cannot find name 'MutationObserver'. 17 create(callback: MutationCallback): MutationObserver | null; ~~~~~~~~~~~~~~~~ Error: node_modules/@angular/cdk/observers/observe-content.d.ts:31:22 - error TS2304: Cannot find name 'Element'. 31 observe(element: Element): Observable<MutationRecord[]>; ~~~~~~~ Error: node_modules/@angular/cdk/observers/observe-content.d.ts:31:43 - error TS2304: Cannot find name 'MutationRecord'. 31 observe(element: Element): Observable<MutationRecord[]>; ~~~~~~~~~~~~~~ Error: node_modules/@angular/cdk/observers/observe-content.d.ts:36:33 - error TS2304: Cannot find name 'Element'. 36 observe(element: ElementRef<Element>): Observable<MutationRecord[]>; ~~~~~~~ Error: node_modules/@angular/cdk/observers/observe-content.d.ts:36:55 - error TS2304: Cannot find name 'MutationRecord'. 36 observe(element: ElementRef<Element>): Observable<MutationRecord[]>; ~~~~~~~~~~~~~~ Error: node_modules/@angular/cdk/observers/observe-content.d.ts:60:25 - error TS2304: Cannot find name 'MutationRecord'. 60 event: EventEmitter<MutationRecord[]>; ~~~~~~~~~~~~~~ Error: node_modules/@angular/cdk/observers/observe-content.d.ts:73:76 - error TS2304: Cannot find name 'HTMLElement'. 73 constructor(_contentObserver: ContentObserver, _elementRef: ElementRef<HTMLElement>, _ngZone: NgZone); ~~~~~~~~~~~ Error: node_modules/@angular/cdk/platform/features/shadow-dom.d.ts:11:49 - error TS2304: Cannot find name 'HTMLElement'. 11 export declare function _getShadowRoot(element: HTMLElement): ShadowRoot | null; ~~~~~~~~~~~ Error: node_modules/@angular/cdk/platform/features/shadow-dom.d.ts:11:63 - error TS2304: Cannot find name 'ShadowRoot'. 11 export declare function _getShadowRoot(element: HTMLElement): ShadowRoot | null; ~~~~~~~~~~ Error: node_modules/@angular/common/common.d.ts:2679:30 - error TS2304: Cannot find name 'Element'. 2679 abstract getProperty(el: Element, name: string): any; ~~~~~~~ Error: node_modules/@angular/common/common.d.ts:2684:31 - error TS2304: Cannot find name 'Node'. 2684 abstract remove(el: any): Node; ~~~~ Error: node_modules/@angular/common/common.d.ts:2685:54 - error TS2304: Cannot find name 'HTMLElement'. 2685 abstract createElement(tagName: any, doc?: any): HTMLElement; ~~~~~~~~~~~ Error: node_modules/@angular/common/common.d.ts:2686:36 - error TS2304: Cannot find name 'HTMLDocument'. 2686 abstract createHtmlDocument(): HTMLDocument; ~~~~~~~~~~~~ 9mError: node_modules/@angular/common/common.d.ts:2687:36 - error TS2304: Cannot find name 'Document'. 2687 abstract getDefaultDocument(): Document; ~~~~~~~~ Error: node_modules/@angular/common/common.d.ts:2692:40 - error TS2304: Cannot find name 'Document'. 2692 abstract getGlobalEventTarget(doc: Document, target: string): any; ~~~~~~~~ Error: node_modules/@angular/common/common.d.ts:2693:28 - error TS2304: Cannot find name 'History'. 2693 abstract getHistory(): History; ~~~~~~~ Error: node_modules/@angular/common/common.d.ts:2695:31 - error TS2304: Cannot find name 'Document'. 2695 abstract getBaseHref(doc: Document): string | null; ~~~~~~~~ Error: node_modules/@angular/common/common.d.ts:449:47 - error TS2304: Cannot find name 'Document'. 449 export declare const DOCUMENT: InjectionToken<Document>; ~~~~~~~~ Error: node_modules/@angular/core/core.d.ts:10413:62 - error TS2304: Cannot find name 'Element'. 10413 export declare function ɵgetDebugNode__POST_R3__(nativeNode: Element): DebugElement__POST_R3__; ~~~~~~~ Error: node_modules/@angular/core/core.d.ts:10415:62 - error TS2304: Cannot find name 'Node'. 10415 export declare function ɵgetDebugNode__POST_R3__(nativeNode: Node): DebugNode__POST_R3__; ~~~~
The readCsv()
Method is exported from an Angular Package Format library an looks like this:
export function readCSV(csv: string, config = CSV_DEFAULT_CONFIG): ParseResult<any> { return parse(csv.trim(), config); }
This used to work fine until upgrading the Angular version just now.
Any ideas? I can't stackblitz this because web workers don't run on Stackblitz ...
Environment
_ _ ____ _ ___ / \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _| / △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | | / ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | | /_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___| |___/ Angular CLI: 11.0.7 Node: 12.6.0 OS: linux x64 Angular: 11.0.9 ... animations, common, compiler, compiler-cli, core, forms ... platform-browser, platform-browser-dynamic, router Ivy Workspace: Yes Package Version --------------------------------------------------------- @angular-devkit/architect 0.1100.7 @angular-devkit/build-angular 0.1100.7 @angular-devkit/core 11.0.7 @angular-devkit/schematics 11.0.7 @angular/cdk 11.2.3 @angular/cli 11.0.7 @angular/material 11.2.3 @schematics/angular 11.0.7 @schematics/update 0.1100.7 ng-packagr 11.2.4 rxjs 6.6.6 typescript 4.0.7
https://stackoverflow.com/questions/66838063/angular-compile-fails-when-importing-library-function-into-web-worker March 28, 2021 at 11:08AM
没有评论:
发表评论