Parcel Blog
フィード
Parcel 2 alpha 1 is here!
Parcel Blog
Today I’m incredibly excited to release the first alpha version of Parcel 2! Please try it out and help us take Parcel 2 to the finish line. Check it out on GitHub!Parcel 2 is a ground up rewrite of Parcel that we’ve been working on for over a year, and designing for almost a year before that. It incorporates everything we’ve learned building Parcel since the beginning, and the result is more extensible, scalable, and reliable than Parcel 1, while retaining the ease of use and developer experience you’ve come to expect from Parcel. 🎛 Extensibility — Parcel 2 is fully extensible, from end to end. The plugin types have been expanded to allow extending and overriding nearly all of the core behavior with easy to configure pipelines. While the default settings include everything in Parcel 1 (and more), now you can customize and extend just about everything if you need to. ⚖️ Scalability — While Parcel has always utilized parallelism and caching to scale to large applications, this is taken...
5年前
Parcel 2 beta 1
Parcel Blog
The Parcel team is super excited to release the first beta of Parcel 2 today! This marks the first Parcel 2 release that’s more stable than our nightly and alpha releases, and our commitment to avoid changing most user facing APIs. Please try it out and give us your feedback on GitHub!It’s been a while since our last alpha release, and there has been a ton of active development on Parcel 2 in the meantime. We’ve been focusing on stability, performance, and reliability as we prepare for our stable v2 release, but we’ve managed to sneak in a few new features too! 🌳 Improved tree shaking — Parcel’s tree shaking implementation has improved tremendously since the last alpha release. In addition to a ton of bug fixes and performance improvements, Parcel 2 now produces source maps for tree shaken bundles, and displays friendly error messages when you reference an unknown symbol. 🗺 Faster source map generation— Parcel now has a brand new source map module, hand tuned for our specific usecase...
5年前
Parcel 2 beta 3
Parcel Blog
The Parcel team is excited to release Parcel 2 beta 3! This release includes a ground up rewrite of our JavaScript compiler in Rust, which improves overall build performance by up to 10x. In addition, this post will cover some other improvements we’ve made to Parcel since our last update, along with our roadmap to a stable Parcel 2 release.10x faster JavaScript compiler written in Rust 🚀Over the past few months, we’ve been working on rewriting our JavaScript compiler in Rust! Parcel's JavaScript compiler is responsible for detecting dependencies in your code (like import statements and new Worker() calls), inlining process.env variables and other Node globals, and performing scope hoisting.In addition, Parcel automatically transpiles your source code for your configured browserslist targets, along with non-standard syntax like JSX and TypeScript, and development features like React Fast Refresh.Previously, all of this was implemented in JavaScript on top of a Babel AST. While we had m...
4年前
Parcel 2 RC
Parcel Blog
The Parcel team is very excited to announce the first Parcel 2 release candidate! This release includes many improvements, including new features, better performance, API consistency, and lots of bug fixes and stability improvements.Automatic differential bundling via native ES modulesParcel 2 now automatically generates both native ES modules for modern browsers and fallback classic scripts for old browsers. This reduces bundle sizes significantly for a majority of users by shipping modern syntax rather than transpiling to ES5.Classic scripts vs. ES modulesOne of Parcel’s fundamental design goals has always been to work like the web does. We try to avoid lock in by following web standards and not inventing Parcel-specific syntax or features as much as possible. One place where this was not true in Parcel v1 was the way Parcel handled <script> tags in HTML. Previously, Parcel would treat all scripts as modules, including support for import and export statements, and isolating each file
3年前
Announcing Parcel v2!
Parcel Blog
The Parcel team is beyond excited to announce that v2.0.0 stable is now available! 🎉Parcel 2 brings the zero configuration experience you know and love from Parcel 1, and makes it scalable and extensible to projects of any size and complexity. It is already being used in production at some of the biggest companies in the industry including Atlassian, Adobe, and Microsoft.Check out our new website and documentation, and the repo on GitHub!What's new in Parcel 2?Parcel 2 is a ground up rewrite of Parcel that has touched every aspect. If you haven’t followed along with our pre-release blog posts, here are a few highlights. 🔌 An all new plugin system, which makes Parcel fully extensible. This allows Parcel to scale from small side projects to massive production applications with complex build requirements. 🌳 Tree shaking is enabled by default, including support for ES modules, CommonJS, dynamic imports, and CSS modules. 🚀 Massive performance improvements, including a new JavaScript com...
3年前
Announcing Parcel CSS
Parcel Blog
I'm very excited to announce @parcel/css, a new CSS parser, compiler, and minifier written in Rust! Check it out on GitHub, or try a live demo right in your browser.Parcel CSS has significantly better performance than existing tools, while also improving minification quality. In addition to minification, Parcel CSS handles compiling CSS modules, tree shaking, automatically adding and removing vendor prefixes for your browser targets, and transpiling modern CSS features like nesting, logical properties, level 4 color syntax, and much more.It can be used with Parcel, as a standalone library from JavaScript or Rust, or wrapped as a plugin within any other tool. The Rust library is designed as a platform for CSS tooling, with access to fully parsed data structures for all CSS rules, selectors, properties, and values.PerformanceParcel CSS is extremely fast. It is over 100x faster than CSSNano for minification, and over 3x faster than ESBuild. It can minify over 2.7 million lines of code per
3年前
Parcel v2.4.0
Parcel Blog
In January, we announced Parcel CSS, a super fast new CSS parser, compiler, and minifier written in Rust. Since then, we have been hard at work improving it, with many new features and even better performance. Today, we're excited to announce that Parcel CSS is now the default CSS transformer and minifier in Parcel v2.4.0!New featuresHere is a summary of some of the major features that have been added to Parcel CSS since our initial announcement. @custom-media draft syntax Improved minification of custom properties Cascade layers (i.e. @layer) Registered custom properties (i.e. @property) CSS Color Level 4, including lab(), and other color spaces with fallbacks for older browsers. color-mix() function from CSS Color Level 5 Automatic vendor prefixing for mask, clip-path, and filter. And much more! With these features, Parcel CSS can now be used as a replacement for many common PostCSS-based setups, including autoprefixer, postcss-preset-env, postcss-modules, and cssnano.UpgradingIn Par
3年前
Parcel v2.6.0
Parcel Blog
We're happy to announce Parcel v2.6.0! This release includes new features including an error overlay for React, support for source maps in HMR, and locally scoped variables in CSS modules, along with lots of bug fixes and improvements.React error overlayParcel has included an in-browser overlay for build errors for a long time, but when a runtime error occurred, it was only logged to the console. As popularized by Create React App, Parcel now also includes a runtime error overlay for React, which shows beautiful stack traces with highlighted code frames that automatically omit React framework internals.These code frames use source maps to show you your original code, but you can also toggle to show the compiled output if you like, or expand the collapsed framework internal stack frames as well. This is all provided by the same package that Create React App uses. Thanks to the CRA team for building such a great UI for errors!Launch your editor right from an errorBoth the React runtime e
3年前
Parcel v2.8.0
Parcel Blog
We are excited to announce the release of Parcel v2.8.0! This release includes a brand new bundling algorithm with improved automatic code splitting, much better build performance for large projects, and fixes for many bugs. It also includes major performance improvements for HMR updates, and tree shaking changes that we've seen reduce bundle sizes by up to 50%.New bundling algorithmSince our initial v2 release, Parcel has supported automatic code splitting, which deduplicates shared modules between multiple parts of your app (e.g. pages, dynamic imports, etc.). This allows commonly used dependencies like React or a design system to be cached independently from application code, reducing the amount of code that must be loaded when navigating between pages. Because it is automatic, it doesn't need to be configured or updated manually by developers, keeping your app optimal as you make changes.Our initial implementation worked well on small to medium size projects, but hit scalability is
2年前
Parcel v2.9.0
Parcel Blog
Parcel v2.9.0 includes many long requested features, including a brand new resolver with support for package.json "exports" and tsconfig.json features, support for ESM plugins and configs, and local Parcel plugins. It also improves performance with a new default JS minifier powered by SWC, incremental symbol propagation, and improved bundler data structures, and includes a new build performance tracing feature. This is a big release – let's dive in!New resolverParcel's resolver is responsible for finding a file path for a dependency such as import "react". This may seem simple, but as the JavaScript ecosystem has developed over the years, it has become more and more complex. Parcel's current resolver implementation was originally written way back in 2018, and is missing some modern features like package.json "exports" and "imports".Parcel v2.9.0 includes a brand new resolver implementation written from scratch in Rust. It supports all of the existing Parcel resolution features, while a
2年前
Parcel v2.12.0
Parcel Blog
Parcel v2.12.0 introduces support for macros, which enable you to generate code at build time using regular JavaScript functions. It also includes a new online REPL, improves our CSS bundling support, adds configuration options to fine tune your app's code splitting, and improves performance and memory usage.MacrosParcel v2.12.0 introduces support for macros. Originally implemented in Bun, Macros are JavaScript functions that run at build time instead of being bundled. The value returned by a macro is inlined into the bundle in place of the original function call. This allows you to generate constants, code, and even additional assets without any custom plugins.Macros are imported using an import attribute to indicate that they should run at build time rather than being bundled into the output. You can import any JavaScript or TypeScript module as a macro, including built-in Node modules and packages from npm.This example uses the regexgen library to generate an optimized regular expre
10ヶ月前