import { cleanupProject, newProject, rmDist, runCLI, runCommand, uniq, updateFile, updateProjectConfig, } from '@nx/e2e/utils'; describe('Rollup Plugin', () => { beforeAll(() => newProject()); afterAll(() => cleanupProject()); it('should be able to setup project to build node programs with rollup and different compilers', async () => { const myPkg = uniq('my-pkg'); runCLI(`generate @nx/js:lib ${myPkg} --bundler=none`); updateFile(`libs/${myPkg}/src/index.ts`, `console.log('Hello');\n`); // babel (default) runCLI( `generate @nx/rollup:rollup-project ${myPkg} --target=node --tsConfig=libs/${myPkg}/tsconfig.lib.json --main=libs/${myPkg}/src/index.ts` ); rmDist(); runCLI(`build ${myPkg}`); let output = runCommand(`node dist/libs/${myPkg}/index.cjs`); expect(output).toMatch(/Hello/); updateProjectConfig(myPkg, (config) => { delete config.targets.build; return config; }); // swc runCLI( `generate @nx/rollup:rollup-project ${myPkg} --target=node --tsConfig=libs/${myPkg}/tsconfig.lib.json --main=libs/${myPkg}/src/index.ts --compiler=swc` ); rmDist(); runCLI(`build ${myPkg}`); output = runCommand(`node dist/libs/${myPkg}/index.cjs`); expect(output).toMatch(/Hello/); updateProjectConfig(myPkg, (config) => { delete config.targets.build; return config; }); // tsc runCLI( `generate @nx/rollup:rollup-project ${myPkg} --target=node --tsConfig=libs/${myPkg}/tsconfig.lib.json --main=libs/${myPkg}/src/index.ts --compiler=tsc` ); rmDist(); runCLI(`build ${myPkg}`); output = runCommand(`node dist/libs/${myPkg}/index.cjs`); expect(output).toMatch(/Hello/); }, 500000); it('should be able to build libs generated with @nx/js:lib --bundler rollup', () => { const jsLib = uniq('jslib'); runCLI(`generate @nx/js:lib ${jsLib} --bundler rollup`); expect(() => runCLI(`build ${jsLib}`)).not.toThrow(); }); });