Angularjs를 사용하려면 node.js가 필요합니까?


79

angular.js웹 사이트에서 이미지 편집 도구 를 사용 하고 싶습니다. 나도 필요 node.js합니까?

시나리오를 이해하지 못합니다. 필요하지 않다면 언제 nodejs와 angularjs를 함께 사용합니까?


다른 것들. (단 일반적인 것은 자바 스크립트입니다)
세르주 파라 스키 브

하나는 클라이언트이고 하나는 서버입니다. 클라이언트의 JavaScript는 서버의 동일한 언어에 의존하지 않습니다. 여기서 혼란은 무엇입니까?
Neil Lunn 2014 년

1
간단히 말해 대답은 '노
Raunak Kathuria

1
후 각 무엇인지에 와서 노드는이 질문은 나에게 바보 .. - P 보인다 JS
Manikandan Arunachalam

6
Angular 공식 웹 사이트의 튜토리얼이 모두를 혼란스럽게한다고 생각합니다. NodeJS를 백엔드 서버로 사용합니다. 사실, AJAX 또는 이와 유사한 것을 사용하지 않는 한 Angular는 문제없이 컴퓨터에서만 실행할 수 있습니다.
Aaron Liu

답변:


65

클라이언트 측 이미지 편집 도구를 만드는 데 NodeJS가 필요하지 않습니다.

AngularJS는 Google과 커뮤니티에서 유지 관리하는 웹 애플리케이션 프레임 워크로, 클라이언트 측에서 CSS 및 JavaScript가있는 하나의 HTML 페이지로 구성된 단일 페이지 애플리케이션 작성을 지원합니다.

그러나 언젠가 이러한 이미지를 서버에 업로드 및 저장하고 여러 클라이언트에서 액세스 할 수 있도록하려면 서버도 필요합니다. 이 서버는 NodeJS로 만들 수 있습니다.


1
@Catalin Munteanu 감사합니다. 이제 그게 무슨 뜻인지 이해합니다.
Manikandan Arunachalam

2
또한 서버가 필요할 때 처음부터 새로 만드는 것이 좋습니다. 당신은 같은 복잡한 프레임 워크를 사용하기 전에 어떻게 작동하는지 이해할 필요 MEAN하거나 SailsJS.
Catalin MUNTEANU

1
나는 PHP에 의해 서버에서 이미지를 처리하고
Manikandan Arunachalam

백엔드 애플리케이션이 실행 중이고 빌드하려는 것이 프런트 엔드뿐이면 어떻게됩니까? 각도만으로 충분합니까?
Arun

@Arun, AngularJS로 프런트 엔드를 구축하려는 경우 NodeJS가 필요하지 않습니다.
Catalin MUNTEANU

80

네 아픔이 느껴져.

Angular 2 개발을 처음 접하는 사람 에게는 본질적으로 클라이언트 측 기술인 것을 위해 서버 측 기술 을 배워야하는 고통을 느낄 수 있습니다 . 내가 이해하는 바에서 :

  1. node.jsangular 2 애플리케이션의 종속성을 관리하는 데만 사용됩니다. 당신은 어떻게 든 사용하지 않고 그 종속성을 얻을 관리 할 수있는 경우 node.js, npm또는 jspm당신은 실행하고 응용 프로그램을 오프라인을 개발할 수 있습니다. 그러나 수동으로 수행하면 다른 파일을 다시 다운로드해야하는 다른 종속성이있을 수있는 파일을 수동으로 다운로드해야하므로 엄청난 시간이 걸립니다 (예, 거기에있었습니다). node.jsnpm또는 jspm그 문제에 대해이 과정뿐만 아니라 (파일을 구성하는 모든 필요한 조치를 취할 자동화 jspm당신은 응용 프로그램에서 특정 종속성을 사용할 때마다 특정 의존성의 다른 의존성은 또한 당신의 시스템에있는 것이라고 너무을).
  2. 일부 브라우저, 특히 Google 크롬은 보안을 위해 로컬로로드되는 파일을 제한하므로 Angular 2에서 사용하는 특정 HTML 5 기술은 file : 프로토콜을 사용하여로드 할 때 오류가 발생합니다. 따라서 Angular 2를 실행하기 위해 사용 가능한 모든 HTML 5 기술을 사용할 수 있도록 애플리케이션을 제공 할 수있는 서버가 필요합니다.
  3. node.js소스 코드의 변경 사항을 감지 할 수 있는 hot-module-reload기능을 제공하므로 신속한 애플리케이션 개발 기능 에도 필요 file watcher api합니다.

하지만 node.js없이 오프라인으로 Angular 2 애플리케이션을 개발하는 방법이 있습니다.

  1. 필요한 모든 종속성을 관리 할 수 ​​있다면 오프라인에서 애플리케이션을 실행하고 개발할 수 있다고 말한 것을 기억하십니까? 애플리케이션에 필요한 모든 필수 종속성이있는 패키지를 찾거나 만들 수 있다면 종속성을 관리하는 데 npm 또는 jspm이 필요하지 않습니다.
  2. 를 들어 file-access-restriction문제, 당신은 확장으로 프로젝트를로드 할 수 있습니다. 확장 기능은 사용 가능한 모든 HTML 5 기술과 일부 강력한 API (서버에서 제공되는 응용 프로그램에서도 사용할 수 없음)를 사용할 수있는 동시에 개발 환경에 국한됩니다. 따라서 애플리케이션을 확장으로 제공하는 경우 HTML 5 기술에 액세스하기 위해 웹 서버를 실행할 필요가 없습니다.
  3. 를 들어 hot-module-reload기능, 당신은 다른 방법에서 접근 할 수 있습니다. 웹 서버에 파일 감시자를 두어 로컬 시스템의 파일 변경 사항을 모니터링하는 대신 응용 프로그램 자체에서 수행 할 수 있습니다. 응용 프로그램 수 있기 때문에 fetch또는 xmlhttprequest응용 프로그램에 필요한 자원을 주기적 수 있습니다 fetch또는 xmlhttprequest일부 캐시와 비교 응용 프로그램에 필요한 자원과. 그러나 확인할 파일을 어떻게 알 수 있습니까? 당신의 검색 links페이지 내에서 scriptimg.SystemJS를 모듈 로더로 사용하는 경우 레지스트리를 사용하여 애플리케이션에 필요한 파일을 찾을 수 있지만 트랜스 파일 등의 작업을했기 때문에 페이지에로드되지 않았습니다. 이 모든 작업을 수행하면 비 네이티브 코드를 트랜스 파일하거나 사전 처리하는 추가 오버 헤드와 함께 시스템 성능이 저하 될 수 있지만,이 작업은 web worker애플리케이션 코드를 위해 시스템의 기본 실행 스레드를 확보 할 수 있도록 아웃소싱 할 수 있습니다 .

나를 믿지 않습니까? 여기에 증거가 있습니다.

  1. github의 Angular in Chrome 프로젝트에는 최소 Angular 2 애플리케이션을 개발하는 데 필요한 종속성이 포함 된 압축 된 패키지 가 포함되어 있습니다 (최소한의 경우 빠른 시작 페이지에서 참조하는 Tour of Heroes 자습서를 참조합니다). 따라서 node.js에서 지원하지 않는 시스템 (예 : ChromeOS) 또는 node.js를 사용할 수없는 제한된 시스템에있는 경우 필요한 모든 종속성을 사용할 수 있지만 사용할 수 없습니다. 필요한 종속성을 관리하려면 npm 또는 jspm이 필요합니다.
  2. 개념 확장의 증거 크롬 확장으로 로컬 영웅 튜토리얼 (개발 파일, 타이프 라이터 모든)의 투어를 제공합니다.
  3. 이 확장은 또한 hot-module-reloadalexis vincent가 SystemJS를 위해 개발 한 hmr-primitives에 연결 하여 기능을 구현합니다 . 이 hot-module-reload기능은 단일 자바 스크립트 파일에 의해 활성화되므로이 기능이 필요하지 않거나 너무 많은 리소스를 차지하는 경우 문제가되는 코드 줄을 제거 할 수 있습니다.

그러나주의하십시오.

  1. 이 시스템을 사용하는 경우 기술이 발전하고 빠른 속도로 이동함에 따라 개발 패키지를 업데이트 할 방법이 필요합니다 (Angular 2가 방금 출시되었을 때 Angular 3에 대해 이야기하는 내용) 또는 사용중인 기술 응용 프로그램을 개발하기 위해 구식이되거나 API 변경으로 인해 향후 응용 프로그램이 작동하지 않을 수 있습니다. 또한 이러한 유형의 패키지는 수동으로 유지 관리되므로 종속성에 대한 최신 리포지토리가 보장되지 않습니다.
  2. Chrome의 Angular와 같은 Chrome 확장 프로그램으로 애플리케이션을 번들하면 성능 병목 현상이 발생합니다. 코드가 트랜스 파일되고 모듈이 지연로드되기 때문에 최신 자바 스크립트 엔진이 브라우저에서 코드 실행을 최적화하는 데 사용하는 JIT 컴파일 및 기타 성능 향상의 발전을 잃게됩니다. 그러나 성능에서 잃는 부분은 개발하려는 기술을 사용할 수있는 유연성을 얻게됩니다. 항상 절충안이 있습니다. 또한 성능 저하는 코드가로드 될 때 처음에만 발생합니다. 애플리케이션에 의해로드되면 시스템은 성능 향상을 구현하는 방법을 알게됩니다. 애플리케이션을 배포 할 때 최신 자바 스크립트 엔진의 성능 향상을 활용하려면 필요한 리소스를 컴파일해야합니다.
  3. hot-module-reload기능은 현재 프로젝트 (temp1.ts, temp1.css, temp1.htm)에 대한 일반적인 규칙을 사용하는 파일 감시자를 구현하는 끔찍한 방법입니다. 응용 프로그램에 필요하지만 기본 페이지에로드되지 않은 모든 리소스 (트랜스 파일 또는 사전 처리 된 리소스)

7
이것은 받아 들여진 대답이어야합니다. 방금이 질문을 받았는데 내가 가지고 있지 않은 혼란을 해결하셨습니다. Bravo ...
Gaurav Chauhan

동의하지 않습니다. nodejs는 유일한 서버 측 기술이 아닙니다. 질문은 nodejs를 설치하는 데 필요한 grunt, yeoman 등을 사용하는 것에 관한 것입니다.
Jérôme B

9

node.js는 서버 측에서 Javascript를 작성하는 데 사용됩니다. angular.js는 클라이언트 측 프레임 워크입니다.

angular.js를 사용하기 위해 node.js가 필요하지는 않지만 npm (노드 패키지 관리자)을 설치하여 앵귤러 개발자로서의 삶을 훨씬 더 쉽게 만들어 줄 멋진 도구를 사용할 수 있습니다. 예를 들어 : 훌륭한 비계 도구 인 yoeman . npm에서 사용할 수있는 다른 많은 도구가 있습니다. 여기 에 해당 사이트에 대한 링크가 있습니다. angular에 대한 자세한 내용은 공식 앵귤러 웹 사이트 또는 앵귤러 유튜브 채널에서 확인하세요.


2
이 답변은 Angular 및 NodeJS에 대해 혼란스러워하는 것입니다. 클라이언트 에는 NodeJS 가 필요한 도구가 너무 많습니다. 기본적으로 노드 패키지 관리자 (npm) 유틸리티를 사용하여 설치되는 모든 것입니다. 내가 여전히 이해하지 못하는 것은 클라이언트에서 NodeJS 및 npm 설치 패키지를 사용하는 사이트를 호스팅 할 때입니다. 설치된 패키지가 작동하려면 서버에 NodeJS가 있어야합니까? 대답이 "어쩌면"이라면 NodeJS가 웹 서버에도 있어야하는지 여부를 아는 데 어떤 요소가 관련됩니까?
Jazimov

1
귀하의 질문에 대답하려면 예와 아니오입니다. npm패키지 관리자입니다. 로 패키지를 설치하는 npm것은 패키지 및 해당 종속성을 로컬 디렉토리에 복사하는 것과 동일합니다. 따라서 함께 제공되는 멋진 기능을 원한다면 npm설치 npm해야하며이를 위해 노드가 필요합니다. 의 기능이 필요 npm 하지 않은 경우 설치할 필요가 없으며 패키지를 직접 복사 할 수 있습니다. 당신이 그것을 복사하고 angularjs를 다운시킬 설치 주석을 실행한다면 당신 의 사이트가이 날짜 선택기 를 사용해야 한다고 가정 해 보거나 수동으로 할 수 있습니다.
hasanain

감사합니다. 후속 조치를 위해 새 질문을 게시 할 수 있습니다. 그러나 나는 당신의 모범을 이해했습니다. 저는 .NET 프로그래머이며 IIS를 실행하는 Windows 서버에서 호스팅합니다. 대부분의 호스팅 회사는 서버에서 NodeJS를 지원하지 않는 것 같습니다. 다시 말하지만, Node와 함께 클라이언트에서하는 대부분의 작업은 npm (패키지 관리자) 유틸리티를 사용하여 추가 기능 / 종속성을 "설치"하는 것입니다. 그 후, 구성된 파일을 웹 서버에 복사 할 수 있고 노드 없이도 잘 실행될 것으로 예상합니다. 나는 어쨌든 콘솔 액세스를 가지고하지 않는 한 서버 노드를 원하는 것이며, 필요에 따라에 NPM 실행할 수 있습니다 이유는 표시되지 않습니다
Jazimov

8

아니오. Angular는 클라이언트 측과 Node서버 측에서 사용됩니다.

그들은 MEAN 스택 으로 함께 이동하는 데 사용 하지만 반드시 필요한 것은 아닙니다.


3

AngularJS가 작동하기 위해 Node.JS가 필요하지 않습니다. NodeJS는 서버 측이고 AngularJS는 클라이언트 측입니다.

AngularJS를 처음 사용하는 경우이 튜토리얼 AngularJS 튜토리얼을 제안합니다 . 이 튜토리얼에서는 NodeJS를 사용하고 두 가지가 함께 작동하는 이유를 이해할 수 있지만 반드시 필요한 것은 아닙니다.


3

이미징 편집 도구가 어떻게 작동하는지 모르면 대답하기가 어렵습니다. 그러나 질문에 답하기 위해 AngularJS를 사용하기 위해 Node.js가 필요하지 않습니다.

Angular는 클라이언트 웹 브라우저에서 작동하는 프런트 엔드 자바 스크립트 프레임 워크입니다.

Node는 자바 스크립트를 실행할 수있는 서비스로, 서버에서 PHP를 대체하여 자주 사용됩니다 ( 예 : MEAN stack ). 또한 Node는 자바 스크립트를 실행할 수있는 서비스이기 때문에 Angular 애플리케이션을 개발할 때 CSS 및 자바 스크립트 축소 및 테스트 수행과 같은 백그라운드 작업을 수행 할 때 로컬 컴퓨터에서 사용할 수 있습니다.

따라서 이미징 편집 도구가 자바 스크립트로 개발되고 애플리케이션이 Angular 및 Node (웹 서버)를 사용하는 경우 코드는 클라이언트 측 또는 서버 측에서 실행될 수 있습니다.

MEAN 스택을 읽고 Node와 Angular가 어디에 맞는지 확인하십시오. Node가 전혀 필요하지 않지만 동일한 언어로 모두 개발하는 것이 좋습니다.


이제 angularjs를 사용하여 처리 할 수 ​​있고 사용자가 이미지를 업로드하고 (회전, 자르기)와 같은 옵션을 사용할 수 있다고 결정했습니다.이 이미지를 관리해야하는 것은 내 이미지 편집 도구 기능입니다.
Manikandan Arunachalam

1
회전 및 자르기와 같은 사용자 이미지 조작의 경우 프런트 엔드에 해당 기능이있는 것이 합리적입니다. 이미지 크기 조정과 같은 일상적인 기능의 경우 클라이언트 리소스를 확보하기 위해 노드 서버에 배치 할 수 있습니다. 요즘 클라이언트 측 하드웨어는 매우 강력하며 아마도 필요하지 않을 것입니다.
JayMc

0

NodeJs를 설치하는 이유 Chrome, Firefox 등과 같은 웹 브라우저는 JavaScript 만 이해하므로 Typescript를 JavaScript로 변환해야합니다. 따라서 Typescript 트랜스 파일러는 JavaScript에 Typescript 코드를 생성하기 위해 Node.js가 필요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.