Подтвердить что ты не робот

Что такое node_modules каталог в AngularJS?

Я изучаю проект AngularJS и нашел, что он имеет node_modules каталог внутри, размер которого составляет 60 мегабайт.

Простой клиентский javascript-проект действительно нуждается в таком огромном корпусе неизвестных данных?

Я попытался удалить этот каталог, и проект все еще работает. Я подозреваю, что это как-то связано с node.js и это npm, но как? Предположим, мне нужно запустить мой проект на каком-то обычном веб-сервере (не node.js), то как узнать, какие файлы/каталоги не нужны?

Многим библиотекам javascript требуется использовать беседку для их установки. Если я использую беседку, значит ли это, что мне нужно сохранить node_modules?

4b9b3361

Ответ 1

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

Файл package.json в корне приложения определяет, какие библиотеки будут установлены в node_modules при запуске npm install.

Очень часто с приложением angular на вашей машине разработчика или на сервере сборки вы используете другие библиотеки Javascript из npm (менеджер пакетов node.js) для создания своего приложения angular. Задачи могут заключаться в конкатенации ресурсов, с использованием препроцессоров CSS, таких как LESS или SASS, минимизации, замены значений и т.д. И т.д. Наиболее распространенными инструментами для управления и запуска этих задач называются grunt и gulp, которые также устанавливаются через npm.

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

Конечно, можно написать приложение AngularJS, не создавая ничего.

отредактируйте из комментариев: когда вы погружаетесь в angular больше, есть более сложные методы использования библиотек, установленных на npm даже в клиентском приложении, тогда вы выборочно выбираете те, которые вам нужны, а не все 50MB+. Я бы рекомендовал оставаться с базовыми подходами, пока вы не поймете их хорошо.

Ответ 2

NPM - это менеджер пакетов node, который локально устанавливает пакеты в проект, в частности, в папку node_modules. Оттуда код пакета может быть включен в проект, да, может это важное слово.

В браузере нет способа включать модули в код (пока), поэтому вам нужно использовать библиотеку, которая может выставлять модули стиля node commonJS. Browserify и Webpack - два популярных способа сделать это.

Angular усложняет это, введя свою собственную модульную систему, которая более близко напоминает модули в стиле AMD. Есть способы обойти это, так что вы можете использовать node -стильные модули, возможно, ваш проект использует их.

Использование npm для управления зависимостями - отличная идея, это фантастический менеджер пакетов. Вероятно, в вашем случае, что проект построен только с помощью node и что папка node_modules содержит зависимости, относящиеся только к сборке.