source

Grunt, NPM 및 Bower의 차이(패키지).json vs bower.json)

gigabyte 2022. 9. 11. 17:25
반응형

Grunt, NPM 및 Bower의 차이(패키지).json vs bower.json)

저는 npm과 bower를 처음 사용하여 emberjs에 첫 앱을 구축했습니다.
레일에 대한 경험이 조금 있기 때문에 종속성을 나열하기 위한 파일(번들러 Gemfile 등)에 대해 잘 알고 있습니다.

질문: 패키지를 추가하고 싶을 때(및 git에 대한 의존관계 확인), 패키지는 어디에 속합니까?package.json또는 로bower.json?

내가 아는 바로는
입니다.bower install패키지를 가져와 넣습니다./vendor디렉토리,
입니다.npm install그것은 그것을 가져와 넣을 것이다./node_modules디렉토리로 이동합니다.

이 SO 답변은 bower는 프런트 엔드용이고 npm은 백엔드용입니다.
엠버 앱킷은 언뜻 보면 이 구별을 고수하고 있는 것 같습니다.그러나 gruntfile에 있는 몇 가지 기능을 활성화하기 위한 명령어에는 두 가지 명확한 명령어가 있기 때문에 완전히 혼란스럽습니다.

직감적으로 추측하건데

  1. npm install --save-dev package-name은 패키지에 package-name을 추가하는 것과 같습니다.json

  2. bower install --save package-namebower.json에 패키지를 추가하고 bower install을 실행하는 것과 같을 수 있습니다.

이 경우 종속성을 관리하는 파일에 추가하지 않고 패키지를 명시적으로 설치해야 하는 경우는 언제입니까(커맨드라인 툴을 글로벌하게 설치하는 것은 제외).

Npm과 Bower는 모두 의존관계 관리도구입니다.그러나 두 가지 주요 차이점은 npm은 노드 js 모듈을 설치하는 사용되지만 bower js는 html, css, js 등의 프론트 엔드 컴포넌트를 관리하는 데 사용된다는 것입니다.

이를 더욱 혼란스럽게 하는 사실은 npm이 프런트엔드 개발에도 사용할 수 있는 패키지를 제공한다는 것입니다.grunt그리고.jshint.

이 행들은 더 많은 의미를 더한다.

bower는 npm과 달리 메인 파일로 간주되는 여러 파일(예를 들어 .js, .css, .html, .png, .ttf)을 포함할 수 있습니다.Bower는 의미론적으로 이들 메인파일을 함께 패키지화하면 컴포넌트로 간주합니다.

편집: Grunt는 Npm이나 Bower와는 상당히 다릅니다.Grunt는 javascript 태스크 러너 도구입니다.수동으로 해야 했던 Grunt를 사용하여 많은 작업을 수행할 수 있습니다.Grunt의 용도를 강조합니다.

  1. 일부 파일 압축(예: zipup 플러그인)
  2. js 파일의 보풀(jshint)
  3. 컴파일 수 감소(grunt-contribute-less)

sass 컴파일, javascript uglizing, 파일/폴더 복사, javascript 최소화 등을 위한 grunt 플러그인이 있습니다.

grunt 플러그인도 npm 패키지입니다.

질문-1

패키지를 추가하고 싶을 때(및 의존관계를 git에 체크인 할 때), 패키지에 어디에 속합니까?또는 bower.json에 접속합니다.

이 패키지가 어디에 들어가느냐에 따라 다릅니다.노드 모듈(grunt, request 등)인 경우 패키지에 들어갑니다.json을 bower json으로 바꿉니다.

질문-2

종속성을 관리하는 파일에 추가하지 않고 이와 같이 패키지를 명시적으로 설치해야 하는 경우

패키지를 명시적으로 인스톨 하거나, .json 파일의 의존성을 언급하거나 하는 것은 문제가 되지 않습니다.노드 프로젝트 작업 중에 다른 프로젝트가 필요하다고 가정합니다.request에는, 다음의 2개의 옵션이 있습니다.

  • 패키지를 편집합니다.json 파일을 만들고 '요청'에 종속성을 추가합니다.
  • npm 설치

또는

  • 명령줄 사용:npm install --save request

--save옵션을 지정하면 패키지에 종속성이 추가됩니다.json 파일도 있습니다.지정하지 않으면--save옵션에서는 패키지만 다운로드되지만 json 파일은 영향을 받지 않습니다.

어느 쪽이든 상관없습니다.큰 차이는 없습니다.

2016년 중반 업데이트:

상황이 너무 빠르게 변하고 있기 때문에 2017년 후반이 되면 이 답변은 더 이상 최신이 아닐 수 있습니다!

초보자라면 빌드 도구와 워크플로우에 대한 선택권이 금방 없어질 수 있지만, 2016년에 가장 최신인 것은 Bower, Grunt 또는 Gulp을 전혀 사용하지 않는 것입니다!Webpack을 사용하면 NPM에서 모든 것을 직접 할 수 있습니다!

오해하지 마세요.다른 워크플로우를 사용하는데, 저는 레거시 프로젝트에서 GUP을 사용하고 있습니다(그러나 서서히 벗어나고 있습니다).이렇게 해서 최고의 기업과 이 워크플로우에서 일하는 개발자는 많은 돈을 벌 수 있습니다.

템플릿을 보세요.최신 테크놀로지와 최신 테크놀로지가 혼재된 매우 최신 셋업입니다.

  • 웹 팩
  • 빌드 툴로서의 NPM(Gulp, Grunt 또는 Bower 없음)
  • Redux로 대응
  • ESLint
  • 리스트가 길다.탐험하러 가세요!

질문:

패키지를 추가하고 싶을 때(및 의존관계를 git에 체크인 할 때), 패키지에 어디에 속합니까?또는 bower.json에 접속합니다.

  • 모든 것이 포장되어 있다.지금 당장

  • 구축에 필요한 의존관계는 "dev Dependencies"에 있습니다. npm install require-dir --save-dev(--save-dev는 패키지를 업데이트합니다.devDependencies에 엔트리를 추가하여 json을 만듭니다.)

  • 실행 시 애플리케이션에 필요한 의존관계는 "의존관계"에 있습니다. npm install lodash --save(---save는 패키지를 업데이트합니다.의존관계에 엔트리를 추가하여 json을 만듭니다.)

이 경우 종속성을 관리하는 파일에 추가하지 않고 패키지를 명시적으로 설치해야 하는 경우는 언제입니까(커맨드라인 툴을 글로벌하게 설치하는 것은 제외).

항상. 그냥 편안함 때문에.플래그를 추가할 때(--save-dev또는--savedeps(debs.json)를 관리하는 파일은 자동으로 갱신됩니다.종속성을 수동으로 편집하여 시간을 낭비하지 마십시오.숏컷npm install --save-dev package-namenpm i -D package-name및 숏컷npm install --save package-namenpm i -S package-name

언급URL : https://stackoverflow.com/questions/21198977/difference-between-grunt-npm-and-bower-package-json-vs-bower-json

반응형