This PR adds `withNx` function to `@nx/rollup/with-nx` so it can be used
in `rollup.config.js` to replicate what `@nx/rollup:rollup` executor
does without needing to use the executor.
e.g.
```js
// rollup.config.js
const { withNx } = require("@nx/rollup/with-nx");
module.exports = withNx(
{
main: "./src/index.ts",
outputPath: "./dist",
tsConfig: "./tsconfig.lib.json",
compiler: "babel",
external: ["react", "react-dom", "react/jsx-runtime"],
format: ["esm"],
assets: [{ input: ".", output: ".", glob: "README.md" }],
},
{
// Provide additional rollup configuration here. See: https://rollupjs.org/configuration-options
// e.g.
// output: { sourcemap: true },
}
);
```
## Notes
1. Existing `@nx/rollup:rollup` continues to encapsulate rollup options
and will not support an isolated mode.
2. Newly created JS and React libs with `--bundler=rollup` will use the
new `withNx` function and explicit `rollup.config.js`.
3. If `NX_ADD_PLUGINS=false` or `useInferencePlugins: false` is set,
then new projects will continue to use the `@nx/rollup:rollup` executor.
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->
<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->
## Current Behavior
<!-- This is the behavior we have today -->
Updating the vite plugin and the config it produces should correctly
fail where needed.
Currently, `@nx/vite` depends on `@nx/js`, however, `@nx/js` also
depends on `@nx/vite`.
There is a circular dependency there which is more difficult to
circumvent.
## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
To avoid circular dependency issues, move the tests that test the output
of `vite.config.ts` to the `@nx/vite:configuration` specs from the
`@nx/js:library` specs.
## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->
Fixes #
* feat(devkit): split create-empty-tree to different functions
* chore(repo): apply migration for createEmptyTree
* cleanup(misc): fix tests that migration misses
* fix(testing): jest.preset.ts => jest.preset.js
* fix(testing): update to export default
* fix(testing): migration for moving to export default
* fix(testing): add eslint ignore comments for jest config properties
fixes: #10021
* fix(testing): update tsconfig.spec.json for next apps with project parserOptions
fixes: #9982
* fix(testing): prevent renaming root jest preset
fixes: #9973
* fix(testing): update snapshots for export default
* fix(testing): bump migration version to run
* fix(testing): make sure default jest tests pass for various projects
* fix(js): generate correct jest config for --compiler=swc --js
* fix(js): fix(js): adding missing babelrc for tsc compiled libraries
ISSUES CLOSED: #8600, #8793
ISSUES CLOSED: #8600, #8793
* feat(js): adds the --skipBabelConfig flag to prevent .babelrc file generation
ISSUES CLOSED: #8600, #8793
ISSUES CLOSED: #8600, #8793
* feat(js): adds the --includeBabelRc flag to the library generator
adds the --includeBabelRc flag to the library generator, and a mechanism to automatically detect the
nrwl/web plugin, which requires auto-generation of the babelrc even when not explicitly set by the
user
ISSUES CLOSED: #8600, #8793
* feat(testing): move jest config to .ts
move jest config and preset to ts files
ISSUES CLOSED: #8344
* fix(testing): update tests for jest.config.ts changes
update tests broken by renaming jest fils to ts files