2015-08-11 4 views
1

Можно ли исключить файлы из списка пакетов NPM в моем package.json?Можно ли исключить файлы из пакета NPM со стороны установки?

Например, я использую некоторые пакеты, которые также несут много тестов и языков, большинство из которых мне не нужны и которые нужно удалить на моей упакованной производственной версии. Тем не менее, они все еще включены в конечный пакет.

Я пытаюсь удалить столько файлов из пакетов, сколько могу (не делая их вручную каждый раз), чтобы сэкономить место и время компиляции. Окружающая среда, которую я использую, зацикливает все файлы в каталоге node_modules и добавляет их в производственный пакет (все они упакованы с использованием javascript). Я хотел бы, чтобы решение JavaScript удаляло эти файлы при компиляции, поэтому конечный пакет как можно меньше.

+0

Это для серверных пакетов nodejs или пакетов на стороне клиента, которые вы включаете в веб-приложение? –

+0

пакеты на стороне клиента, например, numeraljs/momentjs/усы/магистрали – Flame

+0

* «Я хотел бы, чтобы решение JavaScript удаляло эти файлы при компиляции, поэтому конечный пакет как можно меньше». * Если вы связали свой JavaScript, он будет содержать только файлы, зависящие от кода, который вы импортируете. Любые другие файлы в пакетах, которые не являются прямыми зависимостями (тесты или файлы CSS обычно не являются), не будут включены. –

ответ

0

Я бы использовал bower для управления javascript-модулями на стороне клиента, вместо того, чтобы напрямую использовать npm.

Пакеты Bower проще, чем эквиваленты н.д. и не имеют подпапок с зависимостями модулей. Большинство из них будут включать папку «dist» с предварительно оцененным javascript. Прямо из коробки ваши пакеты будут меньше, чем если вы используете npm.

Если вы хотите пойти дальше, вы можете включить некоторую обработку в ваших gulpjs или gruntjs сценарии либо вручную скопировать необходимые файлы в lib и css папку (ы), или использовать плагин как gulp-bower-normalize к (несколько) автоматически делать то же самое.

+0

. Umm yea, используя беседку вместо npm, - это, как сказать, pepsi, а не кока-кола. Не говоря уже о том, что используемые пакеты буквально одинаковы. Его менеджер пакетов расширения, который не делает много из коробки. например, файл 'bower.json' содержит ключ' main', который указывает на главный js-файл, но не тот, который он автоматически выбирает как «скопируйте этот файл, когда мы находимся в производственном env». Я думаю, что его основное отличие - это каталоги, в которые по умолчанию размещаются пакеты. – Flame

Смежные вопросы