Hopding / pdf-lib

Create and modify PDF documents in any JavaScript environment
https://pdf-lib.js.org
MIT License
6.84k stars 652 forks source link

library chokes when trying to include it in rollup #1645

Open ddtbuilder opened 3 months ago

ddtbuilder commented 3 months ago

What were you trying to do?

I followed the installation via NPM and tried to import some functions with:

import { PDFDocument, StandardFonts, rgb } from 'pdf-lib';

How did you attempt to do it?

imported with

import { PDFDocument, StandardFonts, rgb } from 'pdf-lib';

saved the .js file and ran gulp/rollup....

What actually happened?

rollup chokes and gives me Circular dependency errors and MISSING EXPORT errors for the pako package.

What did you expect to happen?

expected the rollup script to produce.

How can we reproduce the issue?

all i did was import the libary with this statement:

import { PDFDocument, StandardFonts, rgb } from 'pdf-lib';

and save the .js file. When the rolllup script runs it thows the errors mentioned

Version

latest

What environment are you running pdf-lib in?

Browser

Checklist

Additional Notes

No response

ddtbuilder commented 3 months ago

I was able to get rollup working by updating all the packages, but the build process complains about Circular dependency a LOT! Here is the error log:

Circular dependency: node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/PDFEmbeddedPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js Circular dependency: node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/PDFFont.js -> node_modules/pdf-lib/es/api/PDFDocument.js Circular dependency: node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/PDFImage.js -> node_modules/pdf-lib/es/api/PDFDocument.js Circular dependency: node_modules/pdf-lib/es/api/PDFPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/PDFPage.js Circular dependency: node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/PDFDocument.js Circular dependency: node_modules/pdf-lib/es/api/form/PDFButton.js -> node_modules/pdf-lib/es/api/PDFPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/form/PDFButton.js Circular dependency: node_modules/pdf-lib/es/api/PDFPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/form/PDFCheckBox.js -> node_modules/pdf-lib/es/api/PDFPage.js Circular dependency: node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/form/PDFCheckBox.js -> node_modules/pdf-lib/es/api/form/PDFField.js -> node_modules/pdf-lib/es/api/PDFDocument.js Circular dependency: node_modules/pdf-lib/es/api/PDFPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/form/PDFDropdown.js -> node_modules/pdf-lib/es/api/PDFPage.js Circular dependency: node_modules/pdf-lib/es/api/PDFPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/form/PDFOptionList.js -> node_modules/pdf-lib/es/api/PDFPage.js Circular dependency: node_modules/pdf-lib/es/api/PDFPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/form/PDFRadioGroup.js -> node_modules/pdf-lib/es/api/PDFPage.js Circular dependency: node_modules/pdf-lib/es/api/PDFPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/form/PDFTextField.js -> node_modules/pdf-lib/es/api/PDFPage.js Circular dependency: node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/PDFEmbeddedPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js Circular dependency: node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/PDFFont.js -> node_modules/pdf-lib/es/api/PDFDocument.js Circular dependency: node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/PDFImage.js -> node_modules/pdf-lib/es/api/PDFDocument.js Circular dependency: node_modules/pdf-lib/es/api/PDFPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/PDFPage.js Circular dependency: node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/PDFDocument.js Circular dependency: node_modules/pdf-lib/es/api/form/PDFButton.js -> node_modules/pdf-lib/es/api/PDFPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/form/PDFButton.js Circular dependency: node_modules/pdf-lib/es/api/PDFPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/form/PDFCheckBox.js -> node_modules/pdf-lib/es/api/PDFPage.js Circular dependency: node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/form/PDFCheckBox.js -> node_modules/pdf-lib/es/api/form/PDFField.js -> node_modules/pdf-lib/es/api/PDFDocument.js Circular dependency: node_modules/pdf-lib/es/api/PDFPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/form/PDFDropdown.js -> node_modules/pdf-lib/es/api/PDFPage.js Circular dependency: node_modules/pdf-lib/es/api/PDFPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/form/PDFOptionList.js -> node_modules/pdf-lib/es/api/PDFPage.js Circular dependency: node_modules/pdf-lib/es/api/PDFPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/form/PDFRadioGroup.js -> node_modules/pdf-lib/es/api/PDFPage.js Circular dependency: node_modules/pdf-lib/es/api/PDFPage.js -> node_modules/pdf-lib/es/api/PDFDocument.js -> node_modules/pdf-lib/es/api/form/PDFForm.js -> node_modules/pdf-lib/es/api/form/PDFTextField.js -> node_modules/pdf-lib/es/api/PDFPage.js

ddtbuilder commented 3 months ago

just curious if this is by design? i don't know enough to ignore it...