Please see the v7 Upgrade Guide for upgrading to new spelling in version 7.
Please see the v6 Upgrade Guide to go from versions prior to v6.
ShakaCode offers support for upgrading from Webpacker or using Shakapacker. If interested, contact Justin Gordon, justin@shakacode.com.
Versions
[Unreleased]
Changes since last non-beta release.
Please add entries here for your pull requests that are not yet released.
Fixed
Fixed the condition for showing warning for setting useContentHash to false in the production environment. PR 320 by ahangarha.
Breaking changes
Removes defaults passed to @babel/preset-typescript. PR 273 by tomdracz.
@babel/preset-typescript has been initialised in default configuration with { allExtensions: true, isTSX: true } - meaning every file in the codebase was treated as TSX leading to potential issues. This has been removed and returns to sensible default of the preset which is to figure out the file type from the extensions. This change might affect generated output however so it is marked as breaking.
Export immutable webpackConfig function. PR 293 by tomdracz.
The webpackConfig property in the shakapacker module has been updated to be a function instead of a global mutable webpack configuration. This function now returns an immutable webpack configuration object, which ensures that any modifications made to it will not affect any other usage of the webpack configuration. If a project still requires the old mutable object, it can be accessed by replacing webpackConfig with globalMutableWebpackConfig. Check v7-upgrade documentation for more detail.
Added
Set CSS modules mode depending on file type. PR 261 by talyuk.
All standard webpack entries with the camelCase format are now supported in shakapacker.yml in snake_case format. PR276 by ahangarha.
The shakapacker:install rake task now has an option to force overriding files using FORCE=true environment variable PR311 by ahangarha.
Allow configuration of use of contentHash for specific environment PR 234 by justin808.
Changed
Rename Webpacker to Shakapacker in the entire project including config files, binstubs, environment variables, etc. with a high degree of backward compatibility.
Deprecated https entry is removed from the default configuration file, allowing to set server or https as per the project requirements. For more detail, check webpack documentation. The https entry can be effective only if there is no server entry in the config file.
allowed_hosts is now set to auto instead of all by default.
Remove the arbitrary stripping of the top-level directory when generating static file paths. PR 283 by tomdracz.
Prior to this change, top level directory of static assets like images and fonts was stripped. This meant that file in app/javascript/images/image.png would be output to static/image.png directory and could be referenced through helpers as image_pack_tag("image.jpg") or image_pack_tag("static/image.jpg").
Going forward, the top level directory of static files will be retained so this will necessitate the update of file name references in asset helpers. In the example above, the file sourced from app/javascript/images/image.png will be now output to static/images/image.png and needs to be referenced as image_pack_tag("images/image.jpg") or image_pack_tag("static/images/image.jpg").
Fixed
Move compilation lock file into the working directory. PR 272 by tomdracz.
Process source_entry_path with values starting with / as a relative path to source_pathPR 284 by ahangarha.
Removes defaults passed to @babel/preset-typescript to make it possible to have projects with mix of JS and TS code PR 273 by tomdracz.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps shakapacker from 6.6.0 to 7.0.1.
Changelog
Sourced from shakapacker's changelog.
... (truncated)
Commits
96f932e
Release 7.0.16446127
Fix content hash warning in production (#320)1e8548c
Release 7.0.0098e475
Release 7.0.0-rc.2776837c
Allow configuration of use of contentHash for development (#234)17ea220
Lazyload webpack config (#317)bbfef81
Release 7.0.0-rc.1e8927e0
Wrap up version 7 changes (#301)83c42e8
Add generator test (#300)d192dfb
Improve handling devDependencies in installation (#310)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)