Bower의 기본 구성 요소 폴더를 변경하는 방법은 무엇입니까?


475

트위터의 bower를 사용하는 새로운 프로젝트를 만들고 있습니다. component.jsonjquery와 같은 모든 종속성을 유지하기 위해를 만들었습니다 . 그런 다음 bower install라는 폴더에 모든 것을 설치합니다 components. 그러나 다른 폴더에 구성 요소를 설치해야합니다 (예 :) public/components.

components.json을 다음과 같이 편집하려고 시도했습니다.

{
  "name": "test",
  "version": "1.0.0",
  "directory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}

또는:

{
  "name": "test",
  "version": "1.0.0",
  "componentsDirectory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}

https://github.com/twitter/bower/pull/94에 표시된 것처럼 작동하지 않습니다.

답변:


930

컨텐츠를 사용하여 프로젝트 루트 (홈 디렉토리가 아닌)에 Bower 구성 파일.bowerrc 을 작성하십시오 .

{
  "directory" : "public/components"
}

bower install다시 실행 하십시오.


4
나는 단지 볼 수있는 changelog The value of the json property from .bowerrc is no longer used이며 모든 것이 "directory"재산 으로 괜찮다고 생각 합니다. 권리? github.com/bower/bower/blob/master/CHANGELOG.md
— Sergey Kishenin

11
이것은 나를 위해 작동하지 않습니다. .bowerrc에서는 작동하지만 bower.json에서는 작동하지 않습니다. 이것은 기본 기능처럼 보입니다 ...
— elliottregan

148
이것이 bower.json 파일에 포함되지 않는 이유에 대해 궁금합니다. 어쨌든 프로젝트 당 설정이라면 특히 그렇습니다.
— Hayden

8
문서에 따라 bower.json이 아니라 .bowerrc에 있어야합니다. 이상한 ... bower.io/#custom-install-directory
— joemfb

20
Windows에서 "."로 시작하는 파일을 만들려면 뒤에 "."로 파일을 만드십시오. 즉, ".bowerrc"라고 부르십시오.
— PeteK68

76

.bowerrc기본 설치 경로를 설정하기 위한 편집 외에도 다른 파일 유형에 대한 사용자 정의 설치 경로를 설정할 수도 있습니다.

대체 설치 경로를 관리하기위한 단일 명령을 제공하는 bower-installer 라는 노드 패키지가 있습니다 .

운영 npm install -g bower-installer

bower.json을 설정하십시오.

{
  "name" : "test",
  "version": "0.1",
  "dependencies" : {
    "jquery-ui" : "latest"
  },
  "install" : {
    "path" : {
      "css": "src/css",
      "js": "src/js"
    },
    "sources" : {
      "jquery-ui" : [
        "components/jquery-ui/ui/jquery-ui.custom.js",
        "components/jquery-ui/themes/start/jquery-ui.css"
      ]
    }
  }
}

다음 명령을 실행하십시오. bower-installer

이것은 등에 설치 components/jquery-ui/themes/start/jquery-ui.css됩니다./src/css


4
이것은 유망 해 보이지만 bower_components디렉토리는 여전히 작성되어 채워집니다. :(
— Ben

어떤 버전의 정자?
— lfender6445

패키지의 특성 인 것 같습니다. github.com/blittle/bower-installer/issues 에서 문제를 열거 나 설치 후 디렉토리를 제거하는 bash 스크립트를 작성할 수 있습니다.
— lfender6445

1
나는 의미가 없다고 생각합니다. 여전히 전체 git repo 및 종속성을 다운로드 한 패키지를 원하지 않고 특정 파일을 복사하여 붙여 넣기 만하면됩니다 .Ctrl + C를 직접 누를 수 있습니다. 나는 그것이 나를 위해 특정 파일 만 다운로드하기를 희망했다.
— Alendorff

그래, 들었어 이 경우 나는 단지 .bowerrc이며 프로젝트를 단순하게 유지하기 위해 public / bower 또는 public / vendor를 가리 킵니다.
— lfender6445

61

내 창 10에서 같은 문제가 발생했습니다. 이것이 내 문제를 해결 한 것입니다.

  1. bower_components루트 폴더에서 삭제
  2. .bowerrc루트에 파일을 만듭니다
  3. 파일 에서이 코드를 작성 {"directory" : "public/bower_components"}
  4. 실행 bower install

이제 공용 폴더에 bower_components 폴더가 나타납니다.


23

언급 할 가치가있는 것 ...

다른 기고자들이 위에서 언급했듯이 .bowerrcJSON과 함께 파일 사용

{ "directory": "some/path" }

그러나 필요한 경우-파일을 작성하는 동안 Windows에서 문제가 발생할 수 있습니다. Windows에서 " 파일 이름 " 을 추가하라는 메시지가 표시 되면 메모장 ++과 같은 텍스트 편집기 / IDE를 사용하십시오.

이름없는 파일에 JSON을 추가하고 .bowerrc 로 저장하십시오 .

아마도 쉬운 가정이지만, 다른 사람들이 불필요한 두통을 피하기를 바랍니다. :)


18
Windows에서 "."로 시작하는 파일을 만들려면 뒤에 "."로 파일을 만드십시오. 즉, ".bowerrc"라고 부르십시오.
— PeteK68

git bash로도 할 수 있습니다. 간단히 입력하십시오 :echo >> .bowerrc
— Leandro RR

7

퍼팅 시도 components.json에서 파일을 public다시 실행 한 후, 오히려 루트 디렉토리보다, 응용 프로그램의 디렉토리 bower install앱 홈 디렉토리에 이것을 시도 ... :

cp components.json public
cd public
bower install

1
그 방법이 될 수 있습니다, 그것을 할 수있는 합법적 인 방법이 있습니까? 그러나 여전히 이것을 답으로 간주합니다.
— Adam Ramadhan

2
bower.sh`public-components.json '과 같이 설치하려는 디렉토리 앞에 bash 스크립트 를 작성 하면 위의 명령이 생성됩니다.
— hagope

2
그 대답은 모두 확실히 바람직하지 슈퍼 해키 소리
— 제이

-3

안녕하세요, 나는 같은 문제 이며이 방법을 해결합니다.

Windows 사용자와 vs. .bowerrc 파일을 만들 수 없습니다.

cmd에서 모든 폴더로 이동

예를 들어 .bowerrc 파일이 포함 된 패키지를 설치하십시오.

bower install angular-local-storage

이 플러그인에는 .bowerrc 파일이 포함되어 있습니다. 그것을 복사하고 프로젝트로 이동 하여이 파일을 붙여 넣으십시오.

Visual Studio-솔루션 탐색기-모든 파일을 표시하고 .bowerrc 파일을 본 프로젝트 포함

나는이 방법을 해결 :)


당신이 사용할 수있는 Cygwin또는 Cmder터미널 생성하는 .bowerrc파일을.
— Francis.TM

4
아무 이름으로나 파일을 만든 다음 PowerShell 또는 명령 프롬프트를 열고 이름을 바꿉니다.
— TrueWill

파일 이름을 '.name'으로 지정하여 Windows에서 도트 파일을 만들 수 있습니다. - 후 여전히 많은 사람들이 모르는이되는 가능 : 여러 해 동안 이렇게
— 알렉스 Paven
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.