In June 2019, we open-sourced Lightning Web Components (LWC), our enterprise-grade web framework. As part of this, we also shipped, and open-sourced, a command line interface (CLI) to get you quickly up and running:
create-lwc-app (see the GitHub repo). Now, it is time to deprecate the CLI. This blog post will explain why, when, and what’s next for developers who are using it.
When we planned to release LWC, I was working with our internal product and engineering teams on how to get developers a quick-start solution. The engineering team was super busy preparing the framework for its open-source release, and it was unlikely that they could ship a fully-fledged CLI in time for the release.
So, I stepped in and built
create-lwc-app over the course of a couple of weeks (or weekends, I can’t remember). A good developer experience (DX) is key for adoption, so it was a no-brainer to build a CLI to support LWC. As developers here at Salesforce, we care about developers.
It was planned to be temporary implementation until engineering had more cycles to build a good and solid CLI solution. But as with many temporary things, it became permanent. Over time, I started to add more things to make the experience as seamless as possible. In hindsight, that was not the best approach as it also led to hiding key elements that would educate developers on how to use the standard LWC tooling.
Now is the time to undo that and highlight the many standard ways of using the open-source Lightning Web Components framework.
create-lwc-app be deprecated?
I will deprecate
create-lwc-app on March 31 2022.
Note that deprecation doesn’t mean that you won’t be able to use it after that date. I will set the npm packages for
create-lwc-app (see docs),
lwc-services (see docs), and
rollup-plugin-lwc-typescript (see docs) to the “deprecated” status, and after that date, the package will not see any updates. By the time that you read this blog post, the latest version of these packages will also point out the upcoming deprecation.
The GitHub monorepo will also still exist. Here I will set the “Archived” status, so you can still pick up the source code, create your own packages, and so forth — all under your own control.
My recommendation, however, is to not use any of that going forward and to take a look at the alternatives, which I’ll explain next.
What are the alternatives to
There are three ways (that I’m aware of) to use Lightning Web Components in your Node.js-based projects:
- You bundle them with Rollup
- You bundle them with webpack
- You use the unmanaged Lightning Web Runtime (LWR)
We provide general instructions for Rollup on the official documentation site. You may notice that the webpack plugin still exists on my personal repository. This, and the related npm package, will potentially transfer into the ownership of our engineering organization at some point (thanks Nolan and Pierre-Marie for that!).
Another option is to use the unmanaged Lightning Web Runtime (LWR). Compared to the aforementioned bundlers, this is an opinionated runtime built for applications that leverage Lightning Web Components.
To support your migration efforts we provide also a migration guide on the
It was an honor for me to provide a simple tool that had such a huge impact on the Salesforce Developer community. And similarly, it’s satisfying to know that I can now sunset my creation as there are better alternatives available. Check out the alternatives and see what you can do with Rollup, webpack, or LWR. Don’t stop exploring, don’t stop building — the future is bright!
About the author