In the new TS solution setup, non-buildable libraries should still`type: module`. This can lead to problem since ESM is used but the type will default to CJS. This PR also updates `nx sync` for TS references such that transitive deps are not sycned by default, unless `NX_ENABLE_TS_SYNC_TRANSITIVE_DEPENDENCIES=true` env var is setup. Previously, the transitive deps are synced unless the env var disables it. There isn't a good reason to enable it by default, and it is much cleaner to not sync by default. This means that if we have libs `a`, `b`, and `c`, where `a -> b` and `b -> c` dependency edges are formed, then running: ``` nx sync ``` Will update `a/tsconfig.json` to contain refs to `b` but not `c`. Whereas: ``` NX_ENABLE_TS_SYNC_TRANSITIVE_DEPENDENCIES=true nx sync ``` Will update `a/tsconfig.json` to contain refs to both `b` and `c`. <!-- If this is a particularly complex change or feature addition, you can request a dedicated Nx release for this pull request branch. Mention someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they will confirm if the PR warrants its own release for testing purposes, and generate it for you if appropriate. --> ## Current Behavior `type` is missing ## Expected Behavior `type: module` is set in `package.json` ## Related Issue(s) <!-- Please link the issue being fixed so it gets closed when this is merged. --> Fixes #
{{links}}
Nx: Smart Monorepos · Fast CI
Nx is a build system, optimized for monorepos, with plugins for popular frameworks and tools and advanced CI capabilities including caching and distribution.
This package is a JavaScript/TypeScript plugin for Nx.
{{content}}