4bb6115625
## Current Behavior
The remaining 14 publishable packages still build to the shared
workspace output `dist/packages/<name>` and use `commonjs`/`node` module
resolution. This is the last set of packages on the old layout — `nx`,
`devkit`, `js`, `web`, `node`, `webpack`, etc. were already migrated.
## Expected Behavior
Each of the remaining packages now builds to its own local
`packages/<name>/dist` directory with `nodenext` module resolution and
an `exports` map using the custom `@nx/nx-source` condition (so
in-workspace consumers resolve to source, while published/runtime
consumers resolve to built `./dist`). This matches the already-migrated
packages.
Packages migrated (one commit each):
- **Tier 0:** `@nx/react`, `@nx/esbuild`, `@nx/express`, `@nx/vue`,
`@nx/plugin`, `create-nx-workspace`, `@nx/angular`
- **Tier 1:** `@nx/react-native`, `@nx/next`, `@nx/remix`, `@nx/detox`,
`@nx/expo`, `@nx/nuxt`, `create-nx-plugin`
Notes:
- Kept the `./src/*` wildcard exports (the `@nx/nest` pattern) so no
consumer imports needed editing; the optional `./internal` lockdown is
deferred to a follow-up.
- Converted `ensurePackage` + `await import('@nx/...')` pairs to typed
`require()` (ESM dynamic import ignores `Module._initPaths` under
`nodenext`) and replaced `require('../../package.json')` self-references
with the dynamic `require(join('@nx/<name>', 'package.json'))` form.
- `@nx/angular` keeps its dual build: `tsc` (`build-base`) + ng-packagr
(`build-ng`); `ng-package.json` `dest`, both tsconfig `outDir`s, and the
publish `packageRoot` were relocated to `packages/angular/dist`.
- `create-nx-workspace`/`create-nx-plugin` were missing from the
migration board; tracked as NXC-4515 / NXC-4516.
Validation: `nx run-many -t build,lint` is green across all 14 packages
(including angular's real ng-packagr build and
`@nx/nx-plugin-checks`/`@nx/dependency-checks`). **Still needs CI
validation:** full e2e and the `nx release`/publish path (notably
angular's ng-packagr `packageRoot`).
## Breaking Changes
This is a breaking change because only `/internal` can be imported on packages now rather than importing from `src`. There is a migration to take care of this when necessary though.
## Related Issue(s)
Linear: NXC-3580, NXC-3582, NXC-3583, NXC-3584, NXC-3585, NXC-3587,
NXC-3589, NXC-3590, NXC-3596, NXC-3597, NXC-3600, NXC-3601, NXC-4515,
NXC-4516
---------
Co-authored-by: nx-cloud[bot] <71083854+nx-cloud[bot]@users.noreply.github.com>
60 lines
2.4 KiB
JSON
60 lines
2.4 KiB
JSON
{
|
|
"executors": {
|
|
"run-android": {
|
|
"implementation": "./dist/src/executors/run-android/run-android.impl",
|
|
"schema": "./dist/src/executors/run-android/schema.json",
|
|
"description": "Runs Android application."
|
|
},
|
|
"run-ios": {
|
|
"implementation": "./dist/src/executors/run-ios/run-ios.impl",
|
|
"schema": "./dist/src/executors/run-ios/schema.json",
|
|
"description": "Runs iOS application."
|
|
},
|
|
"bundle": {
|
|
"implementation": "./dist/src/executors/bundle/bundle.impl",
|
|
"schema": "./dist/src/executors/bundle/schema.json",
|
|
"description": "Builds the JavaScript bundle for offline use."
|
|
},
|
|
"build-android": {
|
|
"implementation": "./dist/src/executors/build-android/build-android.impl",
|
|
"schema": "./dist/src/executors/build-android/schema.json",
|
|
"description": "Release Build for Android."
|
|
},
|
|
"build-ios": {
|
|
"implementation": "./dist/src/executors/build-ios/build-ios.impl",
|
|
"schema": "./dist/src/executors/build-ios/schema.json",
|
|
"description": "Build iOS app"
|
|
},
|
|
"start": {
|
|
"implementation": "./dist/src/executors/start/start.impl",
|
|
"schema": "./dist/src/executors/start/schema.json",
|
|
"description": "Starts the Javascript server that communicates with connected devices."
|
|
},
|
|
"sync-deps": {
|
|
"implementation": "./dist/src/executors/sync-deps/sync-deps.impl",
|
|
"schema": "./dist/src/executors/sync-deps/schema.json",
|
|
"description": "Syncs dependencies to `package.json` (required for autolinking)."
|
|
},
|
|
"ensure-symlink": {
|
|
"implementation": "./dist/src/executors/ensure-symlink/ensure-symlink.impl",
|
|
"schema": "./dist/src/executors/ensure-symlink//schema.json",
|
|
"description": "Ensure workspace `node_modules` is symlink under app's `node_modules` folder."
|
|
},
|
|
"storybook": {
|
|
"implementation": "./dist/src/executors/storybook/storybook.impl",
|
|
"schema": "./dist/src/executors/storybook/schema.json",
|
|
"description": "Serve React Native Storybook."
|
|
},
|
|
"pod-install": {
|
|
"implementation": "./dist/src/executors/pod-install/pod-install.impl",
|
|
"schema": "./dist/src/executors/pod-install/schema.json",
|
|
"description": "Run `pod install` in the `ios` directory."
|
|
},
|
|
"upgrade": {
|
|
"implementation": "./dist/src/executors/upgrade/upgrade.impl",
|
|
"schema": "./dist/src/executors/upgrade/schema.json",
|
|
"description": "upgrade executor"
|
|
}
|
|
}
|
|
}
|