Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
@remix-run/dev
Advanced tools
@remix-run/dev is a development tool for building web applications using the Remix framework. It provides a set of utilities and commands to streamline the development process, including building, watching, and serving your application.
Build
The build feature compiles the client and server entry points into a production-ready build. This is useful for preparing your application for deployment.
const { build } = require('@remix-run/dev');
build({
entryClientFile: 'src/entry.client.tsx',
entryServerFile: 'src/entry.server.tsx',
outputDir: 'build',
publicPath: '/build/',
}).then(() => {
console.log('Build completed!');
}).catch((error) => {
console.error('Build failed:', error);
});
Watch
The watch feature monitors your source files for changes and automatically rebuilds the application. This is useful for development as it provides instant feedback on code changes.
const { watch } = require('@remix-run/dev');
watch({
entryClientFile: 'src/entry.client.tsx',
entryServerFile: 'src/entry.server.tsx',
outputDir: 'build',
publicPath: '/build/',
}).then(() => {
console.log('Watching for changes...');
}).catch((error) => {
console.error('Watch failed:', error);
});
Serve
The serve feature starts a local development server to serve your built application. This is useful for testing your application in a local environment.
const { serve } = require('@remix-run/dev');
serve({
buildDir: 'build',
port: 3000,
}).then(() => {
console.log('Server is running on http://localhost:3000');
}).catch((error) => {
console.error('Server failed to start:', error);
});
Webpack is a popular module bundler for JavaScript applications. It offers similar functionalities to @remix-run/dev, such as building, watching, and serving applications. However, Webpack is more general-purpose and can be used with various frameworks and libraries.
Parcel is a web application bundler that offers zero-configuration setup. It provides similar features to @remix-run/dev, including building, watching, and serving applications. Parcel is known for its ease of use and fast performance.
Vite is a build tool that aims to provide a faster and leaner development experience for modern web projects. It offers similar functionalities to @remix-run/dev, such as building, watching, and serving applications. Vite is optimized for speed and efficiency, making it a strong alternative.
Remix is a web framework that helps you build better websites with React.
To get started, open a new shell and run:
npx create-remix@latest
Then follow the prompts you see in your terminal.
For more information about Remix, visit remix.run!
v2.12.0
Date: 2024-09-09
You can now opt-in to automatic dependency optimization during development by using the future.unstable_optimizeDeps
future flag. For details, check out the docs at Guides > Dependency optimization. For users who were previously working around this limitation, you no longer need to explicitly add routes to Vite's optimizeDeps.entries
nor do you need to disable the remix-dot-server
plugin.
"@remix-run/react/future/single-fetch.d.ts"
override from tsconfig.json
> compilerOptions
> types
defineLoader
, defineAction
, defineClientLoader
, defineClientAction
helpers from your route modulesUIMatch_SingleFetch
type helper with the original UIMatch
MetaArgs_SingleFetch
type helper with the original MetaArgs
Then you are ready for the new type safety setup:
// vite.config.ts
declare module "@remix-run/server-runtime" {
interface Future {
unstable_singleFetch: true; // 👈 enable _types_ for single-fetch
}
}
export default defineConfig({
plugins: [
remix({
future: {
unstable_singleFetch: true, // 👈 enable single-fetch
},
}),
],
});
For more information, see Guides > Single Fetch in our docs.
With Single Fetch, re-used routes will now revalidate by default on GET
navigations. This is aimed at improving caching of Single Fetch calls in the simple case while still allowing users to opt-into the previous behavior for more advanced use cases.
With this new behavior, requests do not need special query params for granular route revalidations out of the box - i.e., GET /a/b/c.data
There are two conditions that will trigger granular revalidation and will exclude certain routes from the single fetch call:
shouldRevalidate
clientLoader
serverLoader()
from your clientLoader
, that will make a separate HTTP call for just that route loader - i.e., GET /a/b/c.data?_routes=routes/a
for a clientLoader
in routes/a.tsx
When one or more routes are excluded from the Single Fetch call, the remaining routes that have loaders are included as query params. For example, when navigating to /a/b/c
, if A was excluded, and the root
route and routes/b
had a loader
but routes/c
did not, the Single Fetch request would be GET /a/b/c.data?_routes=root,routes/b
.
For more information, see Guides > Single Fetch in our docs.
@remix-run/dev
- New future.unstable_optimizeDeps
flag for automatic dependency optimization (#9921)@remix-run/dev
- Handle circular dependencies in modulepreload manifest generation (#9917)@remix-run/dev
- Fix dest already exists
build errors by only moving SSR assets to the client build directory when they're not already present on disk (#9901)@remix-run/react
- Clarify wording in default HydrateFallback
console warning (#9899)@remix-run/react
- Remove hydration URL check that was originally added for React 17 hydration issues and we no longer support React 17 (#9890)
v1.18.0
via #64091.18.0
turned out to be subject to false positives of it's own which could also put the user in looping scenarios@remix-run/react
- Lazy Route Discovery: Sort /__manifest
query parameters for better caching (#9888)@remix-run/react
- Single Fetch: Improved type safety (#9893)@remix-run/react
- Single Fetch: Fix revalidation behavior bugs (#9938)@remix-run/server-runtime
- Do not render or try to include a body for 304 responses on document requests (#9955)@remix-run/server-runtime
- Single Fetch: Do not try to encode a turbo-stream
body into 304 responses (#9941)@remix-run/server-runtime
- Single Fetch: Change content type on .data
requests to text/x-script
to allow Cloudflare compression (#9889)Full Changelog: v2.11.2...v2.12.0
FAQs
Dev tools and CLI for Remix
The npm package @remix-run/dev receives a total of 287,581 weekly downloads. As such, @remix-run/dev popularity was classified as popular.
We found that @remix-run/dev demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.