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

Нужен ли мне node.js для использования Angularjs?

Я хотел бы использовать angular.js для моего инструмента редактирования изображений на моем сайте. Нужен ли мне также node.js?

Я не понимаю сценарий. Если мне это не нужно, то когда мы вместе используем nodejs и angularjs?

4b9b3361

Ответ 1

Вам не нужен NodeJS для создания инструмента редактирования изображений на стороне клиента.

AngularJS - это инфраструктура веб-приложений, поддерживаемая Google и сообществом, которая помогает создавать одностраничные приложения, которые состоят из одной HTML-страницы с CSS и JavaScript на стороне клиента.

Но если когда-нибудь вы захотите загрузить и сохранить эти изображения на сервере и сделать их доступными для нескольких клиентов - тогда да, вам также понадобится сервер. Этот сервер может быть сделан с NodeJS.

Ответ 2

Я чувствую вашу боль.

Для кого-то нового для разработки Angular 2, я могу почувствовать боль в том, чтобы узнать серверные технологии для того, что по существу является технологией клиентской стороны. Из того, что я понимаю:

  • node.js используется только для управления зависимостями приложения Angular 2. Если вы можете каким-то образом получить эти зависимости без использования node.js, npm или jspm, вы можете запустить и развернуть свое приложение в автономном режиме. Тем не менее, выполнение этого вручную потребует неумолимого времени, так как вы должны вручную загружать файлы, которые могут иметь другие зависимости, которые потребуют повторного загрузки других файлов (да, я был там). node.js или npm или jspm для этого автоматизирует этот процесс, а также принимает все необходимые шаги по настройке файлов (jspm), так что всякий раз, когда вы используете определенную зависимость в своем приложении, эта конкретная зависимость другая зависимость будет также присутствовать в вашей системе.
  • Некоторые браузеры, особенно Google Chrome, ограничивают файлы, загруженные локально в целях безопасности, поэтому определенные технологии HTML 5, используемые Angular 2, будут вызывать ошибку при загрузке с использованием протокола file:. Таким образом, вам нужен сервер, с которого вы можете обслуживать ваше приложение, чтобы все доступные технологии HTML 5 были доступны для запуска Angular 2.
  • node.js также необходим для возможности hot-module-reload для быстрой разработки приложений, поскольку он предоставляет file watcher api для обнаружения изменений исходного кода.

Но есть способ разработки приложения Angular 2 без использования node.js.

  • Помните, когда я сказал, что если вам удастся получить все необходимые зависимости, вы можете запускать и развивать свое приложение в автономном режиме? Если вы можете каким-то образом найти или создать пакет с всеми необходимыми зависимостями, которые потребуются вашему приложению, вам не понадобятся npm или jspm для управления зависимостями для вас.
  • Для проблемы file-access-restriction вы можете загрузить проект как расширение. Расширения имеют возможность использовать все доступные технологии HTML 5, а также некоторые мощные api (недоступные даже для приложений, обслуживаемых на сервере) и в то же время являющиеся локальными для вашей среды разработки. Поэтому вам не нужно запускать веб-сервер для доступа к технологиям HTML 5, если вы обслуживаете приложение как расширение.
  • Для возможности hot-module-reload вы можете подойти к нему с другой стороны. Вместо того, чтобы отслеживать файлы на веб-сервере для мониторинга изменений в файлах в локальной системе, вы можете сделать это из самого приложения. Поскольку приложение может fetch или xmlhttprequest ресурсов, которые необходимы приложению, вы можете периодически fetch или xmlhttprequest ресурсы, которые требуется вашему приложению, и сравнить их с некоторым кешем. Но как вы узнаете, какие файлы нужно проверять? Вы можете искать links на странице script, img. Если вы используете SystemJS в качестве загрузчика модуля, вы можете использовать его реестр для поиска файлов, необходимых вашему приложению, но не загруженных на страницу, так как он был переделан или что-то в этом роде. Несмотря на то, что все это может привести к утечке производительности в вашу систему наряду с дополнительными накладными расходами на пересылку или предварительную обработку неродного кода, это задание может быть передано на аутсорсинг в web worker, который освободит основной поток выполнения в системе для вашего приложения код.

Не верьте мне? Здесь доказательство.

  • Проект Angular в Chrome на github содержит zipped package, который содержит необходимые зависимости, необходимые для разработки минимального приложения Angular 2 (по минимальному, я имею в виду учебник Tour of Heroes, упомянутый на странице быстрого запуска). Таким образом, если вы находитесь в системе, не поддерживаемой node.js(да, например, ChromeOS) или просто в ограниченной системе, в которой node.js просто недоступно, доступны все необходимые зависимости и вам не нужны npm или jspm для управления необходимыми зависимостями для вас.
  • Существует доказательство расширения концепции, которое служит для ознакомления с руководством по героям (файлы разработки, typescript и все) локально как хром.
  • Расширение также реализует функциональность hot-module-reload путем подключения к hmr-примитивам, разработанным alexis vincent для SystemJS. Функциональность hot-module-reload активируется одним файлом javascript, поэтому, если эта функция не нужна или занимает слишком много ресурсов, вы можете просто удалить строку нарушения кода.

Но будьте осторожны.

  • Если вы используете эту систему, вам нужен способ обновления вашего пакета разработки по мере продвижения технологии, и он движется быстрыми темпами (что говорит о Angular 3, когда только Angular 2) или технологии, которые вы используете для разработки вашего приложения, могут устареть или что где-то вдоль линии изменение api может помешать вашему приложению функционировать в будущем. У вас также не гарантируется наличие современных хранилищ для зависимостей, так как эти типы пакетов поддерживаются вручную.
  • Объединение вашего приложения в качестве расширения Chrome, например, в Angular в Chrome, приведет к узким местам производительности. Поскольку код передается и модули загружаются лениво, вы теряете возможности компиляции JIT и других улучшений производительности, которые используют современные javascript-механизмы для оптимизации работы кода в браузере. Однако, что вы теряете в производительности, вы получаете гибкость в использовании технологии, которую вы предпочитаете развивать. Всегда есть компромисс. Более того, поражение производительности происходит только в начале, когда загружается код. После того, как приложение было загружено, система будет знать, как реализовать усовершенствования производительности. Когда вы распространяете свое приложение, вам действительно нужно собрать необходимые ресурсы, чтобы воспользоваться улучшением производительности современных движков javascript.
  • Возможность hot-module-reload в настоящее время является хакерским способом реализации наблюдателя файлов, который использует общие соглашения для проекта (temp1.ts, temp1.css, temp1.htm), поскольку нет способа (я мог ошибаться в этом вопросе), чтобы получить окончательный список всех ресурсов, необходимых для приложения, но не загруженных на главной странице (переданные или предварительно обработанные ресурсы).

Ответ 3

node.js используется для написания Javascript на стороне сервера. angular.js - это фреймворк на стороне клиента.

Вам не нужен node.js, чтобы использовать angular.js, но вы можете установить npm (менеджер пакетов узлов), чтобы использовать некоторые замечательные инструменты, которые значительно облегчат вашу жизнь разработчика. Например: yoeman, который является отличным инструментом для строительных лесов. На npm доступно много других инструментов, здесь есть ссылка на их сайт. Узнайте больше об angular на официальном сайте angular или на канале angular youtube.

Ответ 4

Нет. Angular используется на стороне клиента и Node для серверной части.

Они используют для совместного использования как MEAN Stack, но это необязательно.

Ответ 5

Вам не нужно Node.JS для работы с AngularJS. NodeJS является серверной, AngularJS является клиентской стороной.

Если вы новичок в AngularJS, я бы посоветовал этот учебник учебник AngularJS. В учебнике вы будете использовать NodeJS, вы поймете, почему они работают вместе, но не нужны.

Ответ 6

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

Angular - интерфейсная инфраструктура javascript, работающая в веб-браузере клиентов.

Node - это служба, которая может выполнять javascript и часто используется на сервере, возможно, в замене PHP (как в стеке MEAN), Кроме того, поскольку Node - это служба, которая может выполнять javascript, она может использоваться на вашем локальном компьютере при разработке приложений Angular для выполнения фоновых задач, таких как минимизация css и javascript и выполнение тестов.

Итак, если ваш инструмент редактирования изображений разработан в javascript, а ваше приложение используется Angular и Node (как веб-сервер), код может быть выполнен как на стороне клиента, так и на стороне сервера.

Прочитайте в стеке MEAN, чтобы увидеть, где находятся Node и Angular. Вам вообще не нужен Node, но хорошо разработать все на одном языке.