Большой размер пакета Create-React-App - Оптимизированная производственная сборка - PullRequest
0 голосов
/ 01 мая 2018

Хотите развернуть конфигурацию create-react-app на Heroku со следующим пакетом сборки: https://github.com/mars/create-react-app-buildpack

Я заметил, что у меня увеличенный размер сборки 425 кб после того, как я был gZipped, и мой веб-сайт очень медленно при начальной загрузке

Являются ли следующие шаги достаточно приличными мерами для уменьшения размера пучка? (т. е. лучший удар для прерванных долларов). Если нет, что бы вы еще порекомендовали? - Я еще не сделал этого:

  1. Code Split, где я могу и использовать React Loadable (и, возможно, использовать * * Тысяча двадцать-одиных реагируют-универсальный-компонент * 1 022 *) * * один тысяча двадцать три
  2. Убедитесь, что я загружаю только необходимые модули (т. Е. import { map } from 'lodash/map';).

Другие решения, которые я не хочу делать

А именно добавляет следующее:

new webpack.optimize.DedupePlugin(), //dedupe similar code new webpack.optimize.UglifyJsPlugin(), //minify everything new webpack.optimize.AggressiveMergingPlugin()//Merge chunks

Build time Gzip - Что, я думаю, уже сделано create-react-app


My Source Map Explorer - еще раз попробую снять Firebase, удалить Lottie и импортировать только необходимые модули

I will ensure I remove some modules through specifying better...

Журналы сборки Heroku

-----> React.js (create-react-app) multi app detected
-----> Configure create-react-app build environment
       Using `NODE_ENV=development`
=====> Downloading Buildpack: https://github.com/heroku/heroku-buildpack-multi.git
=====> Detected Framework: Multipack
=====> Downloading Buildpack: https://github.com/heroku/heroku-buildpack-nodejs.git
=====> Detected Framework: Node.js
-----> Creating runtime environment

       NPM_CONFIG_LOGLEVEL=error
       NPM_CONFIG_PRODUCTION=false
       NODE_VERBOSE=false
       NODE_ENV=production
       NODE_MODULES_CACHE=true
-----> Installing binaries
       engines.node (package.json):  unspecified
       engines.npm (package.json):   unspecified (use default)

       Resolving node version 8.x...
       Downloading and installing node 8.11.1...
       Using default npm version: 5.6.0
-----> Restoring cache
       Loading 2 from cacheDirectories (default):
       - node_modules
       - bower_components (not cached - skipping)
-----> Building dependencies
       Installing node modules (package.json + package-lock)
       up to date in 14.708s
-----> Caching build
       Clearing previous node cache
       Saving 2 cacheDirectories (default):
       - node_modules
       - bower_components (nothing to cache)
-----> Pruning devDependencies
       Skipping because NPM_CONFIG_PRODUCTION is 'false'
-----> Build succeeded!
=====> Downloading Buildpack: https://github.com/mars/create-react-app-inner-buildpack.git
=====> Detected Framework: React.js (create-react-app)
       Using existing `static.json`
       Enabling runtime environment variables
-----> Build succeeded!
=====> Downloading Buildpack: https://github.com/mars/create-react-app-inner-buildpack.git
=====> Detected Framework: React.js (create-react-app)
       Using existing `static.json`
       Enabling runtime environment variables
> journey-client@0.1.0 build /tmp/build_127125dc8ce0d7d71d8f78fe226cf544
> npm run build-css && react-scripts build
> journey-client@0.1.0 build-css /tmp/build_127125dc8ce0d7d71d8f78fe226cf544
> node-sass-chokidar src/ -o src/
Wrote 2 CSS files to /tmp/build_127125dc8ce0d7d71d8f78fe226cf544/src/
Creating an optimized production build...
File sizes after gzip:
  495.27 KB  build/static/js/main.b1129bd4.js
  18.05 KB   build/static/css/main.e2b6d04c.css
The project was built assuming it is hosted at the server root.
To override this, specify the homepage in your package.json.
For example, add this to build it for GitHub Pages:
  "homepage" : "http://myname.github.io/myapp",
The build folder is ready to be deployed.
You may serve it with a static server:
  npm install -g serve
  serve -s build
=====> Downloading Buildpack: https://github.com/heroku/heroku-buildpack-static.git
=====> Detected Framework: Static HTML
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
-----> Installed directory to /app/bin
Using release configuration from last framework (Static HTML).
-----> Discovering process types
       Procfile declares types     -> (none)
       Default types for buildpack -> web
-----> Compressing...
       Done: 92.5M
-----> Launching...
       Released v94

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Недавно я столкнулся с той же проблемой, я не хотел удалять свой старый проект CRA. Я сделал следующие шаги: 1. Обновите свою React ad React-DOM до последних версий (в моем случае - 16.8.6) - запустите команду 'yarn реагировать @ следующая реакция-дом @ следующий' (или команда npm, если используется npm) 2. Используйте подходы React.lazy и React.Suspense для отложенной загрузки ваших библиотек и / или компонентов по требованию. Вот ссылка https://reactjs.org/blog/2018/10/23/react-v-16-6.html

Это все, но если вы столкнулись с ошибкой при использовании синтаксиса 'import', вам нужно будет использовать плагин babel-plugin-syntax-dynamic-import.

Вы получаете последнюю версию реагирования и, надеюсь, уменьшите размеры комплектов - надеюсь, это поможет вам

0 голосов
/ 25 ноября 2018
  1. Используйте только те пакеты, которые вам необходимы. Если у вас есть пакеты значительного размера, включайте только те модули, которые вам необходимы:

    import 'firebase / auth'; импорт «пожарная база / пожарное депо»; импорт isEqual из 'lodash.isequal';

  2. Используйте что-то вроде Gatsby.js, которое обрабатывает разбиение кода для вас!

  3. Используйте такие практики, как code splitting с next.js, react-loadable или другими.

  4. Использование решения для рендеринга на стороне сервера

...