A Webpack-based toolkit to build your React Native application with full support of Webpack ecosystem.
MIT License
Bot releases are hidden (Show)
Published by RafikiTiki about 1 year ago
Published by RafikiTiki over 1 year ago
nimbus-jose-jwt
) used to decode JWT. This upgrade was needed because of a security vulnerability affecting this package in the previous version used by Repack.Federated
module and RepackPlugin
– #398. Thank you, @ergenekonyigit , for your contribution! 🎉Published by RafikiTiki over 1 year ago
ChunksToHermesBytecodePlugin
created by @oblador & @mikeduminy at Klarna. This one can be manually added to the webpack config to ensure all chunks (or a subset of them, if the exclude
parameter is specified) produced in the production build are indeed complied to the Hermes bytecode. Once again, big thanks for the contribution and I hope it's only the beginning of a great cooperation 🎉📖 ChunksToHermesBytecodePlugin
Docs can be found here: https://re-pack.netlify.app/docs/configuration/plugins/chunks-to-hermes
14afc61
Thanks @mikeduminy! - Add ChunksToHermesBytecodePlugin to transform all emitted chunks with Hermes#391 0693fda
Thanks @jbroma! - Fix: stricter versions for dependencies inside podspec
#365 cf6c77a
Thanks @jbroma! - Updated getResolveOptions exposed by RePack to prefer 'default' condition over webpack's defaults ['require', 'node']
#382 c1a5a2b
Thanks @jbroma! - Fixed and issue where URL for remote asset only included basename from publicPath
Published by RafikiTiki over 1 year ago
Published by RafikiTiki over 1 year ago
@callstack/repack-init
, which helps you setup RePack in your project in seconds!After a few initial problems with release it's finally here!
repack-init
is a utility npm package that automates the process of integrating the Repack
bundler into React Native projects.
Here's a summary of the functionality repack-init
provides:
react-native.config.js
and adds or modifies the necessary fields (commands).webpack.config.js
based on user-provided flags (--mjs or --cjs).project.pbxproj
file in the iOS directory.build.gradle
file in the Android directory based on specific React Native version requirements.This tool aims to simplify the setup of Repack
in React Native projects, ensuring developers can quickly start using Repack
's features.
Minimum required node
version: 16
Usage: @callstack/repack-init [options]
Options:
-e, --entry Path to main entry point for the React-Native project
[string] [default: "index.js"]
-f, --format Format of the webpack.config file
[string] [choices: "mjs", "cjs"] [default: "mjs"]
-v, --verbose Enables verbose logging [boolean] [default: false]
--version Show version number [boolean]
--help Show help [boolean]
✔ Dependencies installed
✔ Created webpack.config.mjs from template
✔ Created react-native.config.js
✔ Added "webpack-bundle" as bundleCommand to android/app/build.gradle
✔ Added "webpack-bundle" as BUNDLE_COMMAND to build phase shellScript in ios/test1.xcodeproj/project.pbxproj
🎉 Setup complete. Thanks for using Re.Pack!
Published by RafikiTiki over 1 year ago
This release has two main features/improvements: Code Signing and Remote Assets.
This has been an issue (#147, #223) for a long time, Repack users had to either manually implement a way to expose static assets (like images, videos etc) from the Remote Chunks/Federated Modules and then consume them in the Host Apps/Super Apps or, there was a more straightforward way – configure assets loader to base64 encode the images and inline them into the JS bundles. This was not the ideal solution because then the JS bundles quickly exploded in size, especially if the remote code was assets heavy.
Thanks to fantastic work from @jbroma, a built-in solution in Repack makes it easier to generate Remote Assets during build time and automatically adjust the JS bundles to use these assets. More thorough guides on handling assets are being worked on and will soon be added to the documentation website. For now, please refer to the usage
section in the PR description: #331
This is a big one 🚀 ! Security is critical, especially in applications that allow remote code execution. That's why we bring an easy-to-configure way to cryptographically sign bundles which will be available for remote consumption in the Module Federation architecture. This will make it easy to ensure that the code the final users of your app are downloading is the code you intend them to download and is not tampered with. For more context and info on how to set it up, please refer to this PR: #348. We create a documentation page dedicated to this topic soon.
#318 6e12c14
Thanks @jbroma! - Added CodeSigning abilities to RePack:
#348 76e98e9
Thanks @jbroma! - Embed code-signing signatures into the bundles:
CodeSigningPlugin
for generating code-signed bundlesCodeSigningUtils
extension for native part of the ScriptManager
to verify signed bundles on Android and iOS#331 515fb05
Thanks @jbroma! - Added remote-assets functionality to the assetsLoader
#328 4f155dd
Thanks @jbroma! - Auto device scale resolution for inlined assets
f142e06
Thanks @jbroma! - Code-Signing - move execution of the plugin to the later stage of compilation2180c09
Thanks @jbroma! - Fix OutputPlugin issue where chunks have no associated files with themPublished by RafikiTiki over 1 year ago
Published by RafikiTiki over 1 year ago
This Release candidate introduces a new feature – Code Signing. It allows you to sign your bundles during build time and verify them on the client side. This feature is currently in experimental mode and the implementation is subject to change. Once we are confident that the API is stable, we will release a stable version of this feature along with the documentation and examples.
Published by RafikiTiki over 1 year ago
0591da0
Thanks @grzegorzkruk! - Replace deprecated node-sass with sass packagePublished by RafikiTiki over 1 year ago
#287 47bdd09
Thanks @andrewworld!
A new optional callback shouldUpdateScript
was added. It could be passed into so-called locator config in addResolver
callback function return statement. Its main usage would be to ask a user whether they want to download the latest update of Federated Scripts or not (for example – if they are not connected to wifi and they would rather save their cellular data).
shouldUpdateScript?: (
scriptId?: string,
caller?: string,
isScriptCacheOutdated?: boolean
) => Promise<boolean> | boolean;
More info and a set of examples describing what are the intended usages of this API will be published soon in a form of a guide in Repack docs. For now, if you're interested in playing with this API please refer to the linked PR or to the API docs
7eeca5e
Thanks @RafikiTiki! - Removed usage of deprecated jcenter repository from build.gradle
.7e0092e
Thanks @RafikiTiki! - Fix #258 – previously entryName
config value was not passed from RepackPlugin
to the OutputPlugin
.28cc721
Thanks @RafikiTiki! - Updated kotlin-gradle-plugin version used by Repack to 1.7.0
.Published by RafikiTiki almost 2 years ago
This release resolves two issues related to Windows platform and adds two QoL improvements.
Fix for path formatting on Windows platform breaking assetsCache
in development Compiler
#255 d974069
Thanks @meypod! - Fix v3 debugger-app
not working on Windows platform
Published by jbinda about 2 years ago
@callstack/repack
package - see detailed CHANGELOG
ScriptManager
which handles loading local and remote scriptsModuleFederationPlugin
which support for remote@location
syntax@callstack/repack-dev-server
package - see detailed CHANGELOG
@callstack/repack-debugger-app
package - see detailed CHANGELOG
Webpack
configuration in webpack.config
ChunkManager
into ScriptManager
To see how to migrate from V2 check migration guide
@callstack/repack
eadd108
[email protected] (detailed CHANGELOG)
Repack.plugins.ModuleFederationPlugin
b588690:
ModuleFederationPlugin
plugin with defaults for React Nativeremotes
conversion to promise new Promise
(via Federated.createRemote
)remote@location
syntaxScriptManager
b588690
1d70683
[email protected] (detailed CHANGELOG)
ScriptManager
adjustments fa097f7:
ScriptManager
using ScriptManager.shared.addResolver
Removed ScriptManager.configure
and split the functionality into ScriptManager.shared.setStore
and ScriptManager.shared.addResolver
undefined
from a resolver will cause next resolver in line to be used (as long as other resolvers were added), if no resolver processed the request the error is thrown.6f560fd
[email protected] (detailed CHANGELOG)
f544464
[email protected] (detailed CHANGELOG)
inline: boolean
option to @callstack/repack/assets-loader
.width
, height
and scale
for inlined assets.a067171
[email protected] (detailed CHANGELOG)
@callstack/repack-dev-server
:
GET /api/platforms
- List all platforms with active compilationsGET /api/:platform/assets
- List all assets (name
and size
) for a given compilationGET /api/:platform/stats
- Get Webpack compilation stats/api
URI for logs and compilations events04fe409
[email protected] (detailed CHANGELOG)
@pmmmwh/react-refresh-webpack-plugin
to 0.5.7
and added react-refresh@^0.14.0
as a @callstack/repack
dependency.RepackTargetPlugin
now requires to pass hmr?: boolean
property to a constructor - only relevant, if you're not using RepackPlugin
05d126e
[email protected] (detailed CHANGELOG)
ScriptManager
:
ChunkManager
into ScriptManager
Webpack
improvements:
RepackPlugin
, all sub-plugins are available under plugins
--silent
option to webpack-start
command to silent all logs--log-file <path>
option to webpack-start
command to log all messages to a file--json
webpack-start
command to log all messages as JSON@callstack/dev-server-repack
6f560fd
[email protected] ( detailed CHANGELOG)
04fe409
[email protected] ( detailed CHANGELOG)
@callstack/repack-dev-server
:
GET /api/platforms
- List all platforms with active compilationsGET /api/:platform/assets
- List all assets (name
and size
) for a given compilationGET /api/:platform/stats
- Get compilation stats/api
URI for logs and compilations events05d126e
[email protected] ( detailed CHANGELOG)
@callstack/repack
into a separate package and made it bundler-agnostic.Published by zamotany almost 3 years ago
Published by zamotany almost 3 years ago
Published by zamotany about 3 years ago
Published by zamotany about 3 years ago