Минимизировать/оптимизировать сайт NextJS

У меня есть сайт nextjs.

Мой common.js и мой custom.scss не минифицируются следующим.

Я попробовал следующий в next.config.js:

const withSass = require('@zeit/next-sass')
const withOptimizedImages = require('next-optimized-images');
const withTypescript = require('@zeit/next-typescript')
module.exports = withSass({minified:true},withOptimizedImages(withTypescript()))

Мой .babelrc

{
    "presets": [
        "next/babel",
        "@zeit/next-typescript/babel",
        "minify"
    ]
}

Мой tsconfig.json

{
    "compilerOptions": {
        "allowJs": true,
        "allowSyntheticDefaultImports": true,
        "jsx": "preserve",
        "lib": [
            "dom",
            "es2017"
        ],
        "module": "esnext",
        "moduleResolution": "node",
        "noEmit": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "preserveConstEnums": true,
        "removeComments": true,
        "skipLibCheck": true,
        "sourceMap": true,
        "strict": true,
        "target": "esnext"
    }
}

Это должно работать или мне нужно реализовать что-то еще?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
5
0
14 577
2

Ответы 2

Минифицированная версия создается только в режиме production, так как на минимизацию кода требуется время.

Чтобы минимизировать производственный режим, вы должны установить NODE_ENV на производство при запуске next build.

Вы можете сделать это, изменив скрипт сборки npm на: NODE_ENV=production next build.

Мой сценарий таков.

Jordi Castillo 19.02.2019 21:37

В выводе npm run build нет минифицированных файлов js?

felixmosh 19.02.2019 21:38

"build": "NODE_ENV=production next build", "start": "NODE_ENV=production node server.js", и немного уменьшите, но, например, не удаляйте комментарии, как я сказал

Jordi Castillo 19.02.2019 21:42

И sass не минифицирован

Jordi Castillo 19.02.2019 21:45

что такое плагин minify babel? вам это не нужно, nextjs работает с Treser, github.com/webpack-contrib/terser-webpack-плагин

felixmosh 19.02.2019 21:48

ставлю на пробу

Jordi Castillo 19.02.2019 21:49

Например, sass, почему бы не оптимизировать¿

Jordi Castillo 19.02.2019 21:51

Я только что проверил это в своем новом проекте, и вы правы, sass не минифицируется, я проверяю причину этого, похоже на неправильную конфигурацию или что-то в этом роде.

felixmosh 19.02.2019 21:55

Похоже, nextjs добавил эту возможность в плагин withCss (который использует withSass), но он еще не опубликован (с ноября 2018 года). github.com/zeit/next-plugins/commit/…

felixmosh 19.02.2019 22:04

Ветчина? они должны выпустить новую версию withCss, и вы получите ее бесплатно. Вы можете подписаться здесь: спектр.чат/?t=8d5458ee-39e3-4706-a666-6c471e9fc7f8

felixmosh 19.02.2019 22:11

Я не уверен, что ты сейчас спрашиваешь :]

felixmosh 19.02.2019 22:18

мой следующий.config.js:

const withCSS = require("@zeit/next-css");
const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");

module.exports = 
    withCSS({
      webpack(config, options) {
         config.optimization.minimizer = [];
         config.optimization.minimizer.push(new OptimizeCSSAssetsPlugin({}));

      return config;
     }
   });

Первая загрузка JS, общая для всех, была 317 КБ, но после того, как я попробовал этот подход, первая загрузка JS, общая для всех, подскочила до 617 КБ, может ли кто-нибудь помочь понять, почему произошел внезапный всплеск первой загрузки JS, общий для всех?

visizky 01.09.2021 20:39

Другие вопросы по теме