angular 9 library publish error "Trying to publish a package that has been compiled by Ivy"
using --prod
option while building the library fixed my issue
ng build yourLibraryName --prod
According to official Angular docs https://angular.io/guide/ivy#opting-out-of-ivy-in-version-9
it is better to opt out from Ivy compiler to use the older View Engine when building and publishing your library by adding this line:
enableIvy: false
to angularCompilerOptions in tsconfig.json file at the root of your library as can be seen below;
I've tried it after updating my Angular library to Angular version 9 and this one small change worked like a charm.
In my case none of the solutions above worked. I noticed however that in the package.json
of my library in the dist folder there is an newly added script (probably added because of this):
"scripts": {
"prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled by NGCC. This is not allowed.\\nPlease delete and rebuild the package, without compiling with NGCC, before attempting to publish.\\nNote that NGCC may have been run by importing this package into another project that is being built with Ivy enabled.\\n')\" && exit 1"
}
SO here either remove/replace the prepublishOnly
script or publish using npm publish --ignore-scripts