Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use the SWC transpiler to improve performance #16

Open
joaoneto opened this issue Aug 21, 2023 · 3 comments
Open

Use the SWC transpiler to improve performance #16

joaoneto opened this issue Aug 21, 2023 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@joaoneto
Copy link

Hello everyone, I would like to suggest an improvement that can be interesting for our project: the use of the transpiler SWC, which is a tool written in rust and that has been standing out in the market, being adopted by Next.js to optimize the developer experience and the performance of build, making it much faster.

According to the official website of SWC, it is 20x faster than Babel on a single thread and 70x faster on four cores. In addition, it supports several features of modern JavaScript, such as arrow functions, optional chaining, TypeScript and more.

The changes that I propose are the following:

  • Add a command option, for example: --experimental, --use-swc, so that the template uses the build with SWC
  • Change or create a template so that the npm scripts of the package.json use the experimental build

This change in the package.json already depends on the solution of issue #15, which is in progress.

Thank you for your attention!

@rsaz rsaz added the enhancement New feature or request label Aug 21, 2023
@rsaz
Copy link
Member

rsaz commented Aug 21, 2023

This suggestion is on stage 2, which means, is waiting for a POC. Excellent. Let's continue the discussion in the issue #15

@joaoneto
Copy link
Author

joaoneto commented Aug 21, 2023

This suggestion is on stage 2, which means, is waiting for a POC. Excellent. Let's continue the discussion in the issue #15

@rsaz
I prepared a functional POC, which adds an --experimental flag.
To test this POC:

./bin/cli.js new expressots-demo -p yarn -d ./ -t opinionated
./bin/cli.js new expressots-demo -p yarn -d ./ -t non-opinionated
./bin/cli.js new expressots-demo --experimental -p yarn -d ./ -t opinionated
./bin/cli.js new expressots-demo --experimental -p yarn -d ./ -t non-opinionated

@rsaz
Copy link
Member

rsaz commented Aug 21, 2023

Discussion approved on #15

To be implemented here in this issue

joaoneto added a commit to joaoneto/expressots-cli that referenced this issue Aug 21, 2023
joaoneto added a commit to joaoneto/expressots-cli that referenced this issue Oct 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: 📋 Draft
Development

No branches or pull requests

2 participants