자바스크립트 종속성 관리: npm vs. bower vs. volo
를 어떻게 합니까?npm
,bower
그리고.volo
?
세 가지 모두 UI 프로젝트에 자바스크립트 종속성을 설치하는 데 사용할 수 있습니다.다를 합니다.npm
노드가 좀 더 구체적입니다.
그럼, 언제 무엇을 사용해야 할까요?
npm
멀었지만,만,bower
그리고.volo
내가 선을 긋지는 못하지만, 정확히 같은 문제를 푸는 것 같습니다.npm
그리고.bower-volo
.
npm과 bower의 차이점을 가장 잘 설명하는 설명은 다음과 같습니다. npm은 패키지라는 자바스크립트 모듈을 관리하고, Bower는 구성 요소라는 프론트엔드 구성 요소(예: css, html, javascript)를 관리합니다.npm은 bower 설치에도 사용됩니다.여기 npm과 bower(volo를 다루지 않음)에 대한 확장된 기사가 있습니다. 그것은 많은 세부 사항을 다루고 있습니다.
허리를 굽히다
기능이 거의 없음에도 불구하고 여전히 프론트엔드 개발자들 사이에서 큰 인기를 끌고 있습니다.모든 프론트엔드 패키지가 그것을 사용하고 있습니다.bower를 npm에 병합하는 계획도 있습니다.
Bower는 클라이언트 측에 최적화되어 있으며 플랫 종속 트리만 지원합니다. 즉, 각 라이브러리는 한 번만 사용해야 하며(같은 라이브러리의 다른 버전을 클라이언트로 발송하는 것은 비용이 많이 들기 때문에) 종속성 제약은 사용자가 해결해야 합니다.
bower 와 된 을 할 을 할 에서 을 와 bower search <some keyword>
다른 패키지 관리자들과 비교했을 때 가장 큰 장점이라고 생각합니다.
볼로
저는 몇 년 동안 아직도 5분 이상 사용하지 않았습니다.그것에 대해서는 모르지만, 내가 보기에 그것은 Grunt 사용자들에게 매우 친숙한 빌드 도구를 포함하고 있습니다.
npm
Manager, npm은 Node Package Manager.입니다를 합니다.할 수 . 은 더 ㅇㅇㅇㅇㅇㅇ뿐이 . 사람들은 더 이상 단순한 것이 아닙니다.npm install
노드 환경에서만 작동할 것으로 기대합니다.예를 들어 트위터 부트스트랩을 위한 npm 패키지가 많습니다.
Npm is optimized for server-side usage, with a nested dependency tree. Each dependency can have its own dependencies which can have their own, and so on. This eliminated dependency version conflicts as each dependency can use their own version of e.g. Underscore. However, the upcoming npm version 3 will flatten the dependency tree:
With npm@3, your node_modules directory will be a lot flatter. All of your dependencies and most of your subdependencies (and (sub)+dependencies) will be sitting next to each other at the top level. Only when there are conflicts will modules be installed at deeper levels. This should make things a lot easier for Windows users.
Some advantages I see on using npm:
- It's used by all the other package managers (component, bower, volo, JSPM, etc);
- Allows using build scripts;
- Lots of tools are available for introspecting npm-based packages
npm is the package manager for JavaScript.
As of february of 2013, my opinion was the following. Please don't take it into account anymore.
npm
It's better to stick with it when you are with a Node project, there are very few projects that are available to browsers also...
bower
Bower is the pop guy right now. They have lots of projects under their hood, and the project maintainers like to keep them up-to-date in the bower registry...
It's a shame that he's sometimes a little buggy.
volo
I haven't tried volo for more than 5 minutes since so, but from what I could see it looks to be more flexible than bower.
A negative point for volo is that their projects are very outdated.
They seem to be solving the same problem but for different environments/worlds. NPM for nodejs and volo, bower for the browser.
The truth is that you can use NPM also to manage javascript and css for the browser. There is nothing preventing you from doing it. In that sense using NPM feels more natural to me than having to manage two different tools for the same purpose.
It seems that bower have more packages available, at least for the more popular ones. But soon jQuery will be also be available in NPM directly and probably all the other libraries will follow the same trend.
제 생각에는 브라우저에서 노드 모듈을 사용하는 데 도움이 되는 브라우저파이나 웹메이크와 같은 도구들이 있기 때문에, 그것들이 당신에게 다른 것을 제공하지 않는 한 더 이상 bower나 volo는 필요하지 않습니다.
볼로와 바워 둘 다 좋지만, 제 입장에서는 이미 NPM을 사용하고 계신다면 고수하시는 게 나을 수도 있습니다.
브라우징이나 웹메이크를 사용하지 않아도 NPM을 사용하여 클라이언트 의존성을 관리할 수 있으니 참고하시기 바랍니다.현재 진행 중인 대부분의 프로젝트에서 npm 모듈을 설치한 후 스크립트를 실행하여 클라이언트 앱이 사용하는 위치에 배치합니다.때로는 grunt를 사용하여 그 파일을 다른 js 파일과 연결하고 때로는 웹 앱의 템플릿 파일에서 직접 참조하기도 합니다.어쨌든, 이것은 개인적인 선호입니다.다른 사람들은 Bower나 Volo가 워크플로우에 더 자연스럽게 적합하기 때문에 사용하기 쉽다는 것을 발견할 수 있습니다.
NPM에 비해 Bower의 큰 장점은 종속성 관리가 단일 버전의 구성 요소를 사용한다는 점입니다(NPM은 서로 다른 복사본/버전을 서로 다른 모듈의 하위 종속성으로 사용하여 작동함).이것은 다른 버전의 구성 요소를 여러 개 포함할 필요가 있기 때문에 클라이언트 측 자바스크립트가 부풀어 오르는 것을 방지하기 때문에 매우 좋은 일입니다.모듈의 여러 복사본을 포함하는 것은 NPM의 종속성 관리가 작동하는 방식의 핵심이므로 NPM은 클라이언트 측 패키지 관리에 전혀 적합하지 않습니다.
위와 같은 결과는 보워 패키지 유지 관리자와 소비자가 분쟁을 피하기 위해 의존 버전 번호 유지에 더 신경 써야 하지만 대가를 치르게 된다는 것입니다.또한 NPM 모듈은 종종 메이저, 마이너 및 패치 릴리스를 제대로 발행하지 못하기 때문에 NPM 의존성 관리가 전혀 문제가 되지 않습니다.
이것이 질문의 범위가 아니라는 것을 알지만 다른 대안도 있습니다.잼 JS - http://jamjs.org/ 한 가지 흥미로운 점은 잼에 그룬트 기능이 있다는 것입니다.
jam compile output.js
누군가가 또 다른 패키지 매니저를 만들어서 이름을 붙여야 합니다: yapm :)
언급URL : https://stackoverflow.com/questions/15092345/javascript-dependency-management-npm-vs-bower-vs-volo
'programing' 카테고리의 다른 글
Data Jpa의 쿼리에 @Modifying 주석을 사용해야 하는 이유 (0) | 2023.09.08 |
---|---|
Renaming files using node.js (0) | 2023.09.08 |
Spring Security - 토큰 기반 API 인증 및 사용자/비밀번호 인증 (0) | 2023.09.08 |
ASP.NET Identity + Windows Authentication (Mix mode - Forms + Windows) (0) | 2023.09.08 |
iPhone Provisioning Portal에서 App ID를 제거하는 방법 (0) | 2023.09.08 |