![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
craco-preact
Advanced tools
This is a craco plugin that sets up Preact for create-react-app version >= 2.
This plugin add the preact-compat
alias so that import React from 'react'
will be translated to import React from 'preact-compat'
. (preact-compat
is a drop-in replacement for React with the same API.)
Use react-app-rewired for
create-react-app
version 1.
craco-preact
is tested with:
preact
: ^8.3.1
preact-compat
: ^3.18.4
react-scripts
: ^2.1.1
@craco/craco
: ^3.2.2
First, follow the craco
Installation Instructions to install the craco
package, create a craco.config.js
file, and modify the scripts in your package.json
.
Then install craco-preact
:
$ yarn add craco-preact
# OR
$ npm i -S craco-preact
Here is a complete craco.config.js
configuration file that adds preact-compat
to the create-react-app
webpack config:
module.exports = {
plugins: [{ plugin: require("craco-preact") }]
};
This plugin does not have any options.
preact-compat
alias?If you are using a React component library such as Ant Design, these React components should work out of the box with the preact-compat
alias. However, Preact does not currently support some of the very latest features in React 16+, such as Hooks and Suspense. Here is the Preact GitHub issue about adding the Hooks API. Here are some more Preact issues about supporting other features in React 16+:
(We have subscribed to these issues, and will update this README if anything changes.)
If you are building a new Preact app from scratch and you don't need any React libraries, then you don't need the craco-preact
plugin. Instead, you should follow the Preact "Getting Started" documentation.
You should still be able to use the create-react-app
webpack config with a native Preact application. Just be aware that npm install
will always install an unused copy of React, because this is a dependency of react-scripts
. This is not an issue. React will not be included in your webpack build unless you explicitly require it with an import
statement. (If you use the craco-preact
plugin, then all import 'react'
statements are translated to import 'preact'
.)
If you need to configure anything else for the webpack build, take a look at the
Configuration Overview section in the craco
README. You can use CracoPreactPlugin
while making other changes to babel
and webpack
, etc.
Install dependencies:
$ yarn install
# OR
$ npm install
Run tests:
$ yarn test
Before submitting a pull request, please check the following:
yarn test
open coverage/lcov-report/index.html
prettier --write **/*.js
formatOnSave
option.FAQs
A Preact plugin for craco / react-scripts / create-react-app
The npm package craco-preact receives a total of 10 weekly downloads. As such, craco-preact popularity was classified as not popular.
We found that craco-preact demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.