Releases: FredKSchott/snowpack
v2.2.0
Lots of new features in this release! Big thanks to @stramel and @stellarhoof for their contributions of these much-requested features.
Project-Level Imports
- Top-level imports based off of mount directories (#397) cd69328
- Learn more: https://www.snowpack.dev/#project-relative-imports
Advanced Proxy Configuration
- Add proxy config options (#393) c8325ca
- Learn more: https://www.snowpack.dev/#dev-request-proxy
ENV Variable Support: import.meta.env
- Add basic env variable support (#394) 43969d0
- Learn more: https://www.snowpack.dev/#environment-variables
Also:
v2.1.1
Small Fixes!
- Swap ansi-escapes for a working cross platform clear (#400) 11ca3d0
- update dependency cache logic 46d3379
- improve ESM import scanner 265418e
- remove bad check against exclude flag 3c10d00
- make possible to import es6 modules without a semicolon (#398) 068471b
- clear cache after dependency install 7e29fd9
- improve deprecation check 5b44882
- ignore babel macro imports (#395) 65d9715
- update docs
v2.1.0
Directory Import Resolution - import './routes';
Previously, we'd done a very lazy + '.js'
to any import missing a file extension, which broke if the import was a directory and users were expecting node-style directory resolution to the directory's index.js
file.
Now, we first check if it's a directory, in which case we add a slightly less lazy + '/index.js'
instead.
Faster, Better Import Scanning
Previously, we'd powered our install import scanner with esbuild, which caused any non-standard JS to fail if esbuild didn't support it, blocking users from using Snowpack entirely (err: Parse Error
).
Now, we have a general fallback scanner for any non-JS syntax. This is now an entirely static analysis of your source directory, meaning we were able to remove esbuild entirely. It's very, very fast now.
True http-proxy
Support
Our "proxy" build script was naively just making http
requests to the proxied destination. This work now uses a real proxy server implementation to support more requests, and sets the stage for us to introduce better proxy configuration support for all the http-proxy library options.
Fixes & Smaller Improvements
v2.0.2
dev
fix issue with web_modules loading af783e6
v2.0.1
What launch day would be complete without a set of bug fixes:
dev
- check all mounted directories for a file 86e1113dev
- proxy requests with methods other than GET (#359) 59e163ddev
- resolve packages that don't have a "main" entrypoint 5a50d3fdev
- update hmr client 3de3379install
- add a fix for some edge-case react imports 2f61be5- Add
.less
,.scss
, and.mdx
support 37f1990 - Update docs, fix typos
Snowpack 2.0.0-rc.1 (Release Candidate #1)
** Psst... Save the date! Snowpack 2.0.0 is coming May 26th!**
🎉 Snowpack 2.0.0-RC.1
Thank you everyone who tried out the Snowpack v2.0 Beta! Thanks to you, we've been able to hone in on the final feature set & API for Snowpack v2. At this point we're feeling confident enough to tag our first release candidate (with an official 2.0.0 release scheduled for next week)!
We don't expect any big API changes going forward, so If you want to test Snowpack v2.0 readiness for your application (or framework/library, if you're an open source maintainer) there's never been a better time to start!
What's new?
Snowpack v2 was announced the other week as a next step for the bundle-free development movement that we'd helped kickstart back during the Snowpack v1.0 release. You can read our full announcement thread & story here.
Since that announcement, we've finalized our v2.0 feature set with a bunch of new features requested by you: Hot Module Replacement (HMR), built-in JSX/TS/TSX handling via esbuild, CSS/JSON/Asset imports, and an entire 3rd party plugin system for extending Snowpack are all now available.
We'll be teasing these new features & plugins over the next week, so follow us on Twitter to get an early preview of what's new as we get closer to next week's release. Until then we'll be working on documentation, code cleanup, and testing to prepare for a stable & solid release.
Learn more: https://snowpack.dev/
Create your first plugin: https://snowpack.dev/plugins (These docs are still very much in progress)
Get updates: https://twitter.com/pikapkg
v1.7.1
- Fix:
"'import' and 'export' may only appear at the top level" error in ...
- Pinned Rollup commonjs plugin to earlier version to workaround
- See rollup/plugins#304
v1.7.0
You can read the full release notes below. But first, a look ahead...
The Road to Snowpack v2.0
As it stands, v1.7 is our last planned v1.x release before v2.0.
The project has grown a ton over since our v1.0 release: 160+ PRs, 50+ contributors, and a collection of podcasts, blog posts, video tutorials and more. I'm overjoyed that this project has meant so much to so many. If you're reading this, thank you.
We've also learned a ton from you in the process: what works, what doesn't, and what's still confusing. It turns out, there's still a lot to get confused about. This will be our focus for v2.0: The fastest dev environment on the web should also be the easiest to use.
- Remove our npm coupling: Configuring Snowpack to re-run every npm install/uninstall/add/remove can be a pain. That's why Snowpack v2.0 will also be able to install and manage dependencies independently from npm/yarn. Learn more...
- No more React workarounds: By letting Snowpack fully manage & install your
web_modules/
directory, we can make sure that every package installs correctly from the start. No more workarounds needed for React and others! - A better dev environment: Today, Snowpack works with your favorite static dev server. This is an important goal for the project, but it's also a lot to ask a new user to set up. Starting in v2.0, Snowpack will ship a
dev
command that gives you a fully-configured dev environment, instantly. Learn more... - Better defaults: We've kept around a lot of v1.0 behavior to prevent breaking changes, but new features launched since then make more sense as defaults. v2.0 will be a chance to enable some of our favorite features from v1.x (like
--stat
mode) by default.
If you're interested in getting involved and helping out, this is a great time to do so! We keep our Issue tracker extremely clean so that you can always find an issue that we're looking for help on.
v1.7.0 Release Notes
--env
process.env support (author: @postspectacular)
Snowpack's process.env
handling has gotten an upgrade and a new feature: you can now rewrite custom process.env properties in your dependencies via --env
/"env"
config support. This is essential if you find yourself working with a dependency that checks for a custom property like "process.env.MY_CUSTOM_KEY" that you'd like to provide.
A better babel plugin (author: @francislavoie)
Based on your user feedback, we've completely updated our Babel plugin to better support complex project layouts. It now supports:
- webModulesUrl - Rewrite your bare module imports to an absolute path (
/web_modules/...
), a relative path (../web_modules/...
), or even an absolute, remote URL (https://static.yourdomain.com/web_modules/...
). - moduleResolution - Resolve relative imports using Node's resolution logic. Instead of just adding missing extensions, we'll now also resolve directory imports (
/foo
->/foo/index.js
).
JSX & TypeScript support for --include
(author: @DangoDev, @FredKSchott)
Our previous import scanner left TypeScript users, JSX users, and others stuck in a Catch-22: scanning your compiled code for new dependencies required a successful build, but creating a successful build required that new dependencies were already installed.
You can now use --include src/**/*
to scan your actual source for the correct dependencies, even if you're using non-standard language features like TypeScript or JSX.