2016-12-14 2 views
0

Мне любопытно узнать, почему, когда я создаю новый проект Aurelia, каждый проект устанавливает +600 node_modules. Понятно, что модули коллективно не занимают много места, но нужны ли все эти модули? У меня создалось впечатление, что цель Aurelia заключалась в том, чтобы помочь разработчикам отойти от зависимости от сторонних библиотек, поэтому кажется странным, что каждый проект поставляется с массивным дампом сторонних библиотек.Почему Aurelia устанавливает столько зависимостей?

+2

90% этих node_modules являются инструментами построения. Хотя они не нужны, они могут облегчить вашу жизнь. –

ответ

6

Я предполагаю, что вы запускаете свой проект из CLI - который поставляется с предустановленным HTTP-сервером, ES6/2015, SASS, перепрограммированием и другими.

Я создал чистый проект Aurelia и посмотрел на package.json - было 5 зависимостей и 34 зависимостей dev. Использование всех вышеперечисленных инструментов несколько стандартизировано в современной веб-разработке JS, а генерация проекта из CLI сокращает время, необходимое для предварительной настройки. Все эти функции имеют свои собственные зависимости, поэтому папка node_modules/ быстро растет.

Суть в том, что вы можете начать новый проект Aureila с гораздо меньшим количеством зависимостей. На их домашней странице вы найдете starter project всего три. Но это также означает, что у вас не будет доступа к большинству инструментов, используемых сегодня.

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

+0

Отличный и абсолютно правильный ответ! –

+1

Да, определенно, используя CLI. Мое замешательство с моим сторонним заявлением происходит от прослушивания Роба Эйзенберга по протоколам Hansel Minutes и чтения его сообщения [здесь] (http://eisenbergeffect.bluespire.com/introducing-aurelia/). Я новичок в Aurelia, поэтому моя первоначальная реакция заключалась в том, что он имел в виду сторонние библиотеки, но теперь я полагаю, что он имел в виду, что основная структура Aurelia не имеет сторонних зависимостей? –

5

Все современные веб-каркасы имеют множество инструментов. Причины в каком-либо конкретном порядке:

1. Пересылка ESNext или TypeScript - если вы хотите писать в будущем JavaScript, но работать он во всех браузерах, вам нужен этот шаг. Оба инструмента Babel и TypeScript поставляются с дополнительными материалами. Если вы хотите увидеть покрытие (у всех есть), есть еще один инструмент.

2. Тестирование - Тестирование модулей и тестирование конца до конца требуют тестирования фреймворков, тестовых бегунов, и если вы хотите написать, как указано выше (esnext или TypeScript), вам также необходимо перевести.

3. Модуль загрузки/Группирование - Require.js, JSPM/System.js, WebPack и т.д ... используются, чтобы ваш код на самом деле запустить в браузере. Без загрузчика модуля вы не смогли бы разбить свой код на отдельные файлы. Без комплектатора вы будете загружать много дополнительных файлов в производство.

4. Обслуживание вашего приложения - Если вы хотите запускать свое приложение локально, вам необходимо подать его и посмотреть на изменения.

5. Отладка - Вы хотите отладить? Теперь вам нужен способ отладки файла, который будет отправлен в браузер обратно к исходному источнику.

6. Linting - Настройте кодовую базу для консистенций стиля.

Каждый из этих пакетов обычно имеет свои собственные зависимости, и их также сбрасывают.

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

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