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.