VadimDez/ng2-pdf-viewer

Angular 10 issue -> optimization bailouts

Seharad opened this issue Β· 63 comments

WARNING in /../node_modules/ng2-pdf-viewer/ivy_ngcc/fesm2015/ng2-pdf-viewer.js depends on pdfjs-dist/build/pdf. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

same here

same here, but put in angular.json like they said in official guide

[https://angular.io/guide/build#configuring-commonjs-dependencies]

"options": {
						"allowedCommonJsDependencies": [",
							"moment-business",
							"ng2-pdf-viewer",
							"pdfjs-dist/build/pdf",
							"pdfjs-dist/web/pdf_viewer"
						],

this is just for ignoring the warnings. But the goal should be to get rid of the warnings in general.

Ignoring errors is not the way to go.

same here, any news?

pdfjs is not written with es modules, but they made a es module wrapper available that could be used in the meantime: https://www.npmjs.com/package/@bundled-es-modules/pdfjs-dist

for more info: mozilla/pdf.js#10317

@saithis thanks for pointing the right issue
@bundled-es-modules/pdfjs-dist seems to be outdated

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Can we re-open this one?

@mrmokwa yes indeed

any news?

I hate this Warning :'(

Any updates?

Any updates on this?

This warning is really annoying any pending fixes for this yet?

I m able to fix the issue by adding commonJsdependency property in the angular.json

angular.json

Inside Build command there is an option
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"allowedCommonJsDependencies": ["ng2-pdf-viewer"],
}

I m able to fix the issue by adding commonJsdependency property in the angular.json

angular.json

Inside Build command there is an option
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"allowedCommonJsDependencies": ["ng2-pdf-viewer"],
}

this is not a fix, this is an ignore.

@VadimDez When I tried to build you library from source, I ran into the same problem. Even worse: the require() statements work in the ng2-pdf-viewer demo project, but they failed to work after copying the dist folder to my test project.

Can we get rid of the require() statements? Angular's stopped supporting require.js. It'd be nice to use an import statement instead. Or we could load pdf.js and viewer.js directly. That'd allow for loading these big files lazily.

any updates?

all require()s have been removed

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@VadimDez
If i understand this correctly, unless an ECMAScript module bundle version of ng2-pdf-viewer is released, we have to add ng2-pdf-viewer to allowedCommonJsDependencies to ignore this warning? πŸ€”

Do you think an ECMAScript module bundle version of ng2-pdf-viewer will be available in the future? πŸ”­

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Bump to remove stale.

Has anyone actually found a solution to this? Even if its temporary workaround?

mozilla/pdf.js#10317

Still open :( Hope they will provide it.

Not to sound like a broken record, but has there been any progress on this issue?

first create an ngcc.config.js file on the root => https://githubmemory.com/repo/VadimDez/ng2-pdf-viewer/issues/754

and then allowedCommonJsDependencies

"allowedCommonJsDependencies": [
"ng2-pdf-viewer",
"pdfjs-dist"
]

it work for my project

Any progress? It seems like this type of module causes my initial bundle to have extra 500 Kb, while I'm using it only in lazy loaded modules so I'm expecting it not to be present in an initial bundle

Also hoping for any updates on this.

\node_modules\ng2-pdf-viewer_ivy_ngcc_\fesm2015\ng2-pdf-viewer.js depends on 'pdfjs-dist/es5/build/pdf'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

nono not close πŸ˜‚

Is using https://www.npmjs.com/package/@bundled-es-modules/pdfjs-dist still a viable solution for this issue?

Our project is clean outside of this particular issue.

Is this being worked on?

+1 any news? Thanks!

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

nono not close πŸ˜‚

nono not close πŸ˜‚

πŸ˜‚

I get the message fesm2020 depends on 'pdfjs-dist/legacy/build/pdf

I could be wrong, but in the readme of pdfjs-dist it says, that this version is older browsers or environments without the support for modern features such as async/wait support.

So the only way to remove that message, would be to start using the modern pdfjs version in pdfjs-dist/build/pdf and not the legacy in ng2-pdf-viewer. Of course with the usual upgrade problems.

Is this a viable option, or planning in the near future?

Ngl I don't even remember what this was about 🀣

It's the same on angular 13, it just complains about the optimization bailout when you do a ng-serve. It's still something that needs to be fixed in the foreseeable future and not ignored.

In short it has to be addressed since it prevent effective trees-shake and eventually add over 150KB to the GZIPPED package.

Any progress?

This doesn't depend only from VadimDez... This issue probably won't be ever done

mozilla/pdf.js#10317 (comment)

...we don't want to add even more builds and we also want to support both browsers and Node.js environments with the same builds.

Node is slowly but surely transitioning from commonjs to modules

@VadimDez I could donate the lazy loading algorithm of my own library, ngx-extended-pdf-viewer. The disadvantage of my approach is there's no tree shaking. The huge pdf.js files are loaded as-is. On the plus side, you get lazy loading. In most cases, this outweighs the disadvantage of having bigger files.

Interested?

Best regards,
Stephan

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Hahahaha nah g you ain't gonna do that. This is gonna stay open until it doesnΒ΄t get fixed

Its not stale.

I am having issue as well.

we are still having this issue as well, which is how I got here.. really hope this gets addressed or may have to go digging for another option, though I've already tried a number of them.

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Not stale

What is the point of the stale bot? If just spams everyone twice every month instead of just getting a message when there is real progress...

It's even occurring in angular 14 version. Any fix yet ?

It's still happening in Angular 15 version...any plans for an update please?

It's still happening in Angular 15.2 version

Angular 16 and still happening :(

Somebody please give me the solution....

jlap11 commented

Any progress? :/

I would love to see this fixed

Angular 17 and still happening :(

Would love to see this fixed