shashkovdanil / clean-publish

Removing configuration files and fields in package.json before publishing to npm

Home Page:https://www.npmjs.com/package/clean-publish

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Why not the files field in package.json?

avdeev opened this issue · comments

It allows you to specify a white list of files to publish

https://docs.npmjs.com/files/package.json#files

While I see two usages for the whitelist:

  1. Display a warning if the user entered the required file in the files argument
  2. Show a warning if there is no file from the whitelist.

Any other ideas?

Rus:

Пока вижу два юзкейса для белого списка:

  1. Показать предупреждение, если пользователь ввёл обязательный файл в аргумент files
  2. Показать предупреждение, если файла из белого списка нет.

Ещё идеи?

cc @avdeev

@shashkovdanil Я не совсем это имел ввиду.

Я не очень понял смысл этой утилиты.
Ведь есть же то самое поле files, которое является белым списком для файлов при публикации пакета в NPM.
Почему его недостаточно и нужна еще чистка перед публикацией?
Или это больше не чистка перед публикацией, а валидатор правильной публикации? :)

Возможно, стоит добавить пару предложений об этом в Readme?

@avdeev, с файлами да, но не все знают об этом, а утилита сделает всё автоматически. Помимо файлов утилита очищает ненужные поля в package.json, например такие как: devDependencies, eslintConfig, prettier и т.п. Также очищается поле scripts в package.json. Удаляются скрипты необходимые для разработки, например lint и т.п.

@shashkovdanil Понял, спасибо! Сделать PR с дополнением Readme?

@avdeev, да. Спасибо!

добавил конфиг

'use strict';

const glob = require('glob');

module.exports = {
  files: [
    ...glob.sync('src/**/*.test.js'),
    //...
  ],
  packageManager: 'yarn',
};

но в итоге в пакете прилетают файлы тестов


так же по умолчанию может добавить .idea папку, хотелось бы по умолчанию игнорировать подобные папки