Skip to content

bug: Rollup: Plugin Error: ./node_modules/pdfjs-dist/build/pdf.js:2614:2 #3808

Closed
@rahulgupta-dev

Description

@rahulgupta-dev

Prerequisites

Stencil Version

"@stencil/core": "^2.6.0"

Current Behavior

having issue when using "pdfjs-dist": "^3.0.279" in stencil component, getting below errors

Unexpected token (2614:2) in .\node_modules\pdfjs-dist\build\pdf.js (plugin: commonjs, transform)

below is my stencil component

import { Component, Element, h, Listen, Prop, State } from '@stencil/core'
import pdfjsLib from 'pdfjs-dist'
import pdfjsWorker from 'pdfjs-dist/build/pdf.worker.entry'

@Component({
  tag: 'pdf-viewer',
  styleUrl: 'pdf-viewer.scss'
})
export class PdfViewer {
  @Element() private element: HTMLElement
  @Prop() canvasWidth: number = 500
  @Prop() url: string = ''
  @State() currentPage: number = 1
  @State() totalPages: number
  @State() error: any = undefined
  private loadingTask = undefined

  constructor() {
    pdfjsLib.GlobalWorkerOptions.workerSrc = pdfjsWorker
    this.loadingTask = pdfjsLib.getDocument(this.url)
  }

  // Listen to the active page event emited in the toolbar component
  @Listen('activePageEvent')
  setActivePage(event: CustomEvent): void {
    this.currentPage = event.detail
  }

  renderPage(): void {
    this.loadingTask.promise
      .then(doc => {
        this.totalPages = doc.numPages
        doc.getPage(this.currentPage).then(page => {
          let viewport = page.getViewport({ scale: 1 })
          const desiredScale = this.canvasWidth / viewport.width
          viewport = page.getViewport({ scale: desiredScale, })
          const canvas: any = this.element.querySelector('#tt-pdf-widget')
          const context = canvas.getContext('2d')
          canvas.height = viewport.height
          canvas.width = this.canvasWidth || viewport.width
          const renderContext = {
            canvasContext: context,
            viewport: viewport
          }
          page.render(renderContext)
        })
      })
      .catch(e => {
        this.error = e
      })
  }

  componentDidLoad(): void {
    this.renderPage()
  }

  componentWillUpdate(): void {
    this.renderPage()
  }
  render() {
    return (
      <div class='pdf-viewer background'>
        <canvas id='tt-pdf-widget'></canvas>
      </div>
    )
  }
}

Expected Behavior

should not get the below error,

Unexpected token (2614:2) in .\node_modules\pdfjs-dist\build\pdf.js (plugin: commonjs, transform)

Steps to Reproduce

run npm install
run npm start

Code Reproduction URL

https://github.com/rahulgupta-dev/pdf-viewer

Additional Information

help if there is any issue in compiler/stencil/pdfjs versions

Node version: v18.12.0
Windows x86

Metadata

Metadata

Labels

Bug: ValidatedThis PR or Issue is verified to be a bug within Stencil

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions