Releases: joelmoss/proscenium
v0.14.0
Full Changelog: v0.13.0...v0.14.0
Changes
- In development CSS module names now include the path to the file for easier debugging and location of where styles are defined. So instead of
tab-2f1f6523
, it will betab-2f1f6523__path-to-file-module-css
.
v0.13.0
Full Changelog: v0.12.0...v0.13.0
Changes
-
The
css_module
helper now accepts apath
keyword argument, which allows you to specify the path to the CSS file.css_module :my_module_name, path: Rails.root.join('app/components/button.css')
0.12.0
Full Changelog: v0.11.0...v0.12.0
Changes
- Improved Phlex asset inclusion with
Proscenium::Phlex::AssetInclusions
- Added
unbundle:
prefix to enable unbundling, or externalising imports. - Re-added Etag and ConditionalGet middlewares after the Proscenium middleware to enable caching of assets.
- Added
class_names
helper to Phlex components.
Fixes
- Make sure injected styles are done so at the end of the head.
0.11.0
Features
Breaking Changes
- Code splitting is now enabled by default.
- Removed
include_paths
config in favour ofALLOWED_DIRECTORIES
const. - Replaced
side_load_gems
config withengines
config option. - CSS module names are no longer camelCased.
Changes
global
now available as an alias towindow
.- Added instrumentation for building and resolving.
- Better and more accurate handling of
/public
directory. - Improved error messages for build errors to take advantage of Rails error pages.
- Support for Rails 7.1.
- Renamed
side_load_javascripts
andside_load_stylesheets
toinclude_javascripts
andinclude_stylesheets
respectively. - Massive improvements to Phlex and ViewComponent support.
- Improvements to lazy loading components.
Fixes
- Avoid processing escape sequences in CSS.
- ...plus loads more!
Full Changelog: v0.10.0...v0.11.0
0.10.0
Features
- Automatic code splitting for side loaded assets.
- Support side loading of partials.
- Added
.jsx
,.tsx
and.module.css
file extensions to those which are side loaded. - Modified and greatly improved environment variable usage, and moved to the
proscenium.env.*
object, with support for tree shaking. - The
side_load_stylesheets
helper now accepts and passes through additional arguments. - Further support for importmaps, including some basic functionality of the spec, along with URL values, extension-less values, and indexes.
Chores
- Update esbuild and all other dependencies to the latest.
- Improved and simplified test suite.
0.9.1
FIX - Added app/assets
to include_paths
configuration.
This provides a friendlier path when starting with a new Rails app, which assumes that your assets are all located in app/assets
. Proscenium makes no such assumption, and you can actually put your assets anywhere you want. But at least this addition means it is a little easier to move to Proscenium.
DOCS - Created a guide to getting started with a new Rails app.
Full Changelog: v0.9.0...v0.9.1
0.9.0
- FEAT - Typescript and TSX is now fully support out of the box with the
.ts
and.tsx
file extensions. Also.ts
files can now be side loaded.
Full Changelog: v0.8.2...v0.9.0
0.8.2
- FIX - Debug option was being passed incorrectly, which resulted in minification not happenning in production
Full Changelog: v0.8.0...v0.8.2
0.8.0
- FEAT: Added "proscenium" to the list of exports conditions, allowing you to respond to proscenium in your package exports. See https://esbuild.github.io/api/#conditions for more information. But as an example, you can do this:
{
"name": "pkg",
"exports": {
"./foo": {
"proscenium": "./index.js",
"default": "./dist/index.js"
}
}
}
Because Proscenium bundles everything, and transforms down when needed, there is actually no need for libraries to be pre-built before being published. So a package that supports the "proscenium" exports condition, can simply export its source as-is. Then Proscenium will consume it and transform where necessary.
- FIX: Ensure CSS nesting is transformed down for browsers that do not support it.
Full Changelog: v0.7.0...v0.8.0
v0.7.0
Huge changes here, primarily consisting of replacing Deno and the Javascript based Esbuild plugins, with pure Go. This makes everything so insanely fast, that Proscenium now bundles everything by default, but still on-demand.
Full documentation is forthcoming, and there are still some rough edges, and one or two incomplete features.
Note that this release only includes precompiled binaries for MacOS and Linux. Future releases will hopefully support windows.