I have a few packages that were compiling via tsc alone. This was causing issues when those packages were imported into an app that uses Webpack 4. I decided to try out using vite in my package and just exporting cjs format. I figured since it's bundling everything, it should "just work". I had had issues when using Webpack 5, because there are various conflicts when a host app uses 4 and imports a package using 5 due to the way both versions modify global variables(https://github.com/webpack/webpack/issues/17730).
Now that I am exporting cjs I get:
I updated my relevant package.json from:
"type": "module",
"types": "dist/src/index.d.ts",
"main": "dist/index.js",
to
"types": "dist/src/index.d.ts",
"main": "dist/index.js",
"module": "dist/index.mjs",
I also updated the host app resolve config as shown in Force Webpack 4 to import cjs only and never esm with typescript.
I am now getting this error:
ERROR in ../cai-plugin/packages/common/dist/index.js 1:573
Module parse failed: Unexpected token (1:573)
You may need an appropriate loader to handle this file type.
I thought Webpack 4 should handle cjs no issue? I tried the same with umd and the error was the same except index.umd.js had the incorrect syntax. That surprised me even more.
This pretty much relates to Simple webpack build fails because of new ES syntax.
I updated my package's Vite config so the host app could consume things no issue in Webpack 4.
My TS config target also was downgraded:
"lib": ["ES2015", "dom"],