Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • C create-react-app
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,547
    • Issues 1,547
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 417
    • Merge requests 417
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Meta
  • create-react-app
  • Issues
  • #1183
Closed
Open
Issue created Dec 06, 2016 by Administrator@rootContributor3 of 11 checklist items completed3/11 checklist items

Slim Dependencies

Created by: wtgtybhertgeghgtwtg

Based on a previous discussion. This is a short list of some of what can be done to reduce some of the larger items that increase the overall size of react-scripts. Excluded are smaller, opinionated, or rejected fixes.

  • Currently, three versions of acorn are used. 4.0.3 (560 KB), used by espree, 3.3.0 (520 KB), used by acorn-jsx and webpack, and 2.7.0 4.0.8 (560 KB), used by acorn-globals and jsdom.
    • If #183 (closed) happens, the version of webpack required will require the same version of acorn that espree uses.
    • An issue has been raised for acorn-jsx to bump their required version of acorn, but there has been no response.
    • The latest release of acorn-globals requires the same version of acorn that webpack and acorn-jsx require, but jsdom uses an older version.
    • An issue has been raised for espree to bump their required version of acorn.
  • The version of recursive-readdir required specifically requires "minimatch": "3.0.2", preventing it from deduping with the "minimatch": ">= 3.0.3" in eslint-plugin-import. Which normally wouldn't be that much of a problem, but yarn seems to put minimatch@3.0.2 in the base node_modules folder while placing minimatch@3.0.3 in the node_modules folders of babel-core, eslint-plugin-import, glob, fstream-ignore, multimatch, readdirp, and sane, meaning the same version of a ~30 KB dependency is copied six times over. Fixed with #1560.
  • browserify-zlib packages ~110 KB of tests. A PR has been filed.
  • escope depends on es6-map and es6-weak-map. These two packages, along with their dependants d, es5-ext, es6-iterator, es6-set, and es6-symbol, and event-emitter take up ~560 KB. An issue has been filed on this, but escope does not seem to be actively maintained. It seems eslint will fork has forked escope for the next version, which does not contain the polyfills.
  • istanbul-reports packages a .nyc_output folder of ~310 KB. A PR has been filed.
  • jsx-ast-utils packages a yarn.lock of ~110 KB. An issue has been filed.
  • The version of node-notifier currently used by jest required includes a CLI that is not used and depends on a framework that is not used elsewhere in react-scripts. https://github.com/facebook/jest/pull/2718, which is included in jest@19.0.0, resolved this.
Assignee
Assign to
Time tracking