NPM / Bower / Composer-차이점?


102

누군가 나에게 NPM, Bower및 의 차이점을 설명 할 수 있습니까 Composer?

그들은 모두 패키지 관리자입니다-맞습니까?

그러나 각각은 언제 사용해야합니까?

또한 각 파일에는 함께 제공되는 json 파일이있는 것으로 보입니다. cmd 행으로 설치할 수 있도록 필요한 모든 패키지를 저장합니까? 이 파일이 필요한 이유는 무엇입니까?

답변:


192

npmnodejs 패키지 관리자입니다. 따라서 일반적으로 서버 측 nodejs 프로젝트 또는 명령 줄 프로젝트 (bower 자체는 npm 패키지)를 의미하는 nodejs 환경을 대상으로합니다. nodejs로 무엇이든 할 예정이라면 npm을 사용할 것입니다.

bower(프론트 엔드) 웹 프로젝트를 목표로하는 패키지 관리자입니다. bower를 설치하고 실행하려면 npm과 nodejs가 필요합니다. 그러나 bower 패키지는 nodejs를위한 것이 아니라 "브라우저"환경을위한 것입니다.

composerPHP 프로젝트를 대상으로하는 종속성 관리자입니다. 심포니 (또는 평범한 오래된 PHP)로 무언가를하고 있다면 이것이 갈 길일 것입니다.

요약 :

  • 노드를하고 있습니까? 당신은 npm을
  • PHP를하고 있습니까? 작곡가 시도
  • 프론트 엔드 자바 스크립트? 정자를 시도하다

예, "json"파일은 기본 패키지 정보와 종속성을 설명합니다. 그리고 네, 필요합니다.

이제 README는 어떻습니까? :-)

[업데이트, 4 년 후]

  • bower더 이상 사용되지 않으며 더 이상 새 프로젝트에 사용해서는 안됩니다. 대부분의 경우 노드 종속성 관리에 포함되었습니다 (웹 사이트에서 "Bower가 유지되는 동안 프런트 엔드 프로젝트에 Yarn 및 Webpack 또는 Parcel 사용을 권장합니다").
  • yarn더 나은 npm(몇 가지 npm결함 수정 )으로 나 왔으며 , 프론트 엔드 또는 노드 개발을 수행하는 경우 새로운 사실상의 표준이므로 지금 사용해야 할 것입니다. package.jsonnpm과 동일 하게 소비하며 거의 완전히 호환됩니다.
  • composer이 시점 에서는 사용하지 않을 것입니다 (를 사용하지 않기 때문에 php). 아직 살아 있고 인기가있는 것 같지만

6
php + frontent 응용 프로그램은 어떻습니까? 최선의 선택은 무엇입니까?
sompylasar 2014 년

14
선을 그리는 위치에 따라 다릅니다. MVC가 js에 있습니까 (그리고 PHP가 WS로 축소됨)? 그런 다음 아마도 정자를 사용하십시오. MVC가 PHP (예 : 심포니)에 있고 서버 측 뷰에 많은 js가 연결되어 있습니까? 그렇다면 작곡가가 최선의 선택 일 것입니다.
Mangled Deutz

21
가장 짜증나고 비생산적인 부분은 도서관에서 작업 할 때 일부는 bower 만 사용하는 경우입니다. 일부는 composer 만 사용하고 다른 일부는 npm 만 사용합니다. 단일 명령으로 이러한 모든 패키지 관리자를 처리하는 단일 패키지 관리자를 찾는 것이 좋을 것입니다. Inception이라고해야합니다.
Angel S. Moreno

29
@ AngelS.Moreno가 옳다고 생각합니다. 너무 많아서 4 회를 만들어 보자. :)
Eric Eric

1
@ AngelS.Moreno 당신이 옳으며 설치 프로그램과 종속성 관리자에서 멈추는 것 이상으로 갈 것입니다. 모든 것이 너무 많습니다. 동일한 작업을 수행하는 JS 라이브러리가 너무 많고 PHP 프레임 워크가 너무 많습니다. 사람들이 한 가지 일을 공동으로 작업 할 수 있다면 많은 사람들의 삶이 바뀔 것입니다.
JG Estiot
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.