Giter Club home page Giter Club logo

react-app-rewired-single-spa's Introduction

react-app-rewired-single-spa

Use single-spa systemjs in your create-react-app.

npm NPM downloads

Quickly adapt react-scripts as a submodule of single-spa !!!
Support [email protected] [email protected] version.

Features

  • Support [email protected] compatible with common configuration migrations
  • Output systemjs library auto add SystemJSPublicPathPlugin
  • Support ReactFastRefresh hot refresh

Installation

npm i react-app-rewired-single-spa -D

Usage

This project is based on react-app-rewired.

/* config-overrides.js */
const {
  rewiredSingleSpa,
  rewiredSingleSpaDevServer,
} = require("react-app-rewired-single-spa");

module.exports = {
  webpack: rewiredSingleSpa(),
  devServer: function (configFunction) {
    return function (proxy, allowedHost) {
      const config = configFunction(proxy, allowedHost);
      return rewiredSingleSpaDevServer()(config);
    };
  },
};

// use `customize-cra`
const { override, overrideDevServer } = require("customize-cra");

module.exports = {
  webpack: override(
    rewiredSingleSpa({
      orgName: "you",
      projectName: "test",
      reactPackagesAsExternal: true,
      peerDepsAsExternal: true,
      orgPackagesAsExternal: true,
    })
  ),
  devServer: overrideDevServer(rewiredSingleSpaDevServer()),
};

Options

orgName

Type: string
The name of the organization this application is written for.

projectName

Type: string
The name of the current project. This usually matches the git repo's name.

entry

Type: string
Default: src/{orgName}-{projectName}.{js|jsx|ts|tsx} src/index.{js|jsx|ts|tsx}
The entry file.

outputFilename

Type: string
Default:

  • development {orgName}-{projectName}.[contenthash:8].js
  • production {orgName}-{projectName}.js

rootDirectoryLevel

Type: number
This is the rootDirectoryLevel that is passed to https://github.com/joeldenning/systemjs-webpack-interop.

reactPackagesAsExternal

Type: boolean
This will react react-dom as webpack externals or not.

orgPackagesAsExternal

Type: boolean
This changes whether package names that start with @your-org-name are treated as webpack externals or not.

peerDepsAsExternal

Type: boolean
This will package.json peerDependencies as webpack externals or not.

FQA

FastRefresh invalid

  • If react react-dom is external, react-dev-tool must be installed to refresh automatically. For details, please see facebook/react#17552
  • Check whether the ws connection is normal, you can set in .env file
    • WDS_SOCKET_PORT "2002"
    • WDS_SOCKET_HOST "localhost"
    • WDS_SOCKET_PATH "/projectName" Please start with "/"

      The default hotreload client uses the relative website protocol, which is the protocol of the main base. It can use the localhost protocol and the local development port.

webpack < 5 used to include polyfills for node.js core modules by default

The following packages have been integrated by default, and the specified dependencies can be installed directly in the project.

{
  "url": "url",
  "fs": "fs",
  "assert": "assert",
  "crypto": "crypto-browserify",
  "http": "stream-http",
  "https": "https-browserify",
  "os": "os-browserify/browser",
  "buffer": "buffer",
  "stream": "stream-browserify"
}

You attempted to import XXXXXXXX which falls outside of the project src/ directory

You can use customize-cra removeModuleScopePlugin()

[email protected] postcss plugin error

You can use customize-cra

adjustStyleLoaders(({ use: [, , postcss] }) => {
  const postcssOptions = postcss.options;
  postcss.options = { postcssOptions };
});

License

MIT © fupengl

react-app-rewired-single-spa's People

Contributors

fupengl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.