Удалить неиспользуемый CSS / JS в пользовательском интерфейсе Fomantic (семантическая вилка пользовательского интерфейса)

#angular #gulp #semantic-ui

#angular #глоток #semantic-ui

Вопрос:

Я использую Fomantic UI, обновленную версию Semantic UI с Gulp. Я следовал руководству здесь:https://fomantic-ui.com/introduction/build-tools.html

Вот мой файл semantic.json :

 {
  "base": "semantic/",
  "paths": {
    "source": {
      "config": "src/theme.config",
      "definitions": "src/definitions/",
      "site": "src/site/",
      "themes": "src/themes/"
    },
    "output": {
      "packaged": "dist/",
      "uncompressed": "dist/components/",
      "compressed": "dist/components/",
      "themes": "dist/themes/"
    },
    "clean": "dist/"
  },
  "permission": false,
  "autoInstall": false,
  "rtl": false,
  "version": "2.7.2",
  "components": [
    "reset",
    "site",
    "button",
    "container",
    "divider",
    "header",
    "icon",
    "image",
    "input",
    "label",
    "list",
    "segment",
    "breadcrumb",
    "form",
    "grid",
    "menu",
    "message",
    "table",
    "ad",
    "card",
    "comment",
    "feed",
    "item",
    "accordion",
    "checkbox",
    "dimmer",
    "dropdown",
    "modal",
    "popup",
    "sidebar",
    "visibility"
  ]
}
  

Я ограничил свой список «компонентов», чтобы соответствовать моим потребностям.
Каждый раз, когда я создаю gulp build semantic.min.css и semantic.min.js файлы имеют одинаковый размер (755 Ko для CSS и 338 Ko для JS), даже если я удаляю компоненты в списке JSON.
Я не хочу импортировать свои CSS и JSS один за другим, импортируя файлы компонентов…

Я также заметил странную ошибку: когда я удаляю два файла ниже в моем репозитории dist, Gulp не создает их снова. Поэтому я думаю, что я что-то упустил в процессе…

Кто — нибудь мог бы мне помочь , пожалуйста ? Большое спасибо !

Ответ №1:

Текущая версия Fomantic-UI 2.8.2 имеет дополнительный файл, variation.variables в котором вы можете задать нежелательные вариации компонентов, false чтобы они не компилировались, уменьшая общий сгенерированный CSS, начиная с Fomantic-UI 2.7.0. вы также можете сильно уменьшить сгенерированный CSS при настройке / уменьшении необходимых цветов в центральном colors.less файле

Ответ №2:

Для удаления неиспользуемых файлов CSS вы можете установить purifyCSS:

 npm i -D gulp gulp-purifycss
  

Например, в корне проекта Angular создайте gulpfile.js и добавьте следующий код:

 const gulp = require('gulp');
const purify = require('gulp-purifycss');

gulp.task('purifyCSS', () => {
  return gulp
    .src('./dist/*/styles.*.css')
    .pipe(
      purify(['./src/app/**/*.ts', './src/app/**/*.html'], {
        info: true, // Outputs reduction information (like in the screenshot above)
        minify: true, // Minifies the files after reduction
        rejected: false, // Logs the CSS rules that were removed
        whitelist: ['*transition*', '*dimmer*'] // Ignored css classes
      })
    )
    .pipe(gulp.dest('./dist/'));
});
  

После создания вашего веб-приложения с:

 ng build --prod
  

выполнить:

 npx gulp purifyCSS
  

для автоматического удаления неиспользуемого css.