Bower와 devDependencies vs Dependencies


159

나는 'yo angular'를 실행하고 나중에 1.0.8을 설치하고 각도 구성 요소를 제거한다는 것을 알았지 만 원래 bower.json 파일에는 1.2를 모두 다시 추가 할 때 'devDependencies'에 angular-mocks 및 angular-scenario가 있습니다. devDependencies 대신 종속성이있는 0-rc.2 구성 요소 앵귤러 모의 및 각 시나리오.

devDependencies가 어떻게 사용되는지 궁금하고 수동으로 문제를 해결하거나 그대로 두어야합니다. bower CLI에서 무언가를 dev 의존으로 표시하는 방법을 지정하는 방법이 있습니까?

파일을 편집 한 후 :

{
    name: "Angular",
    version: "0.0.0",
    dependencies: {
        json3: "~3.2.4",
        jquery: "~1.9.1",
        bootstrap-sass: "~2.3.1",
        es5-shim: "~2.0.8",
        angular-mocks: "1.2.0-rc.2",
        angular-sanitize: "1.2.0-rc.2",
        angular-resource: "1.2.0-rc.2",
        angular-cookies: "1.2.0-rc.2",
        angular: "1.2.0-rc.2",
        angular-scenario: "1.2.0-rc.2"
    },
    devDependencies: { }
}

편집하기 전에 :

{
    "name": "Angular",
    "version": "0.0.0",
    "dependencies": {
        "angular": "~1.0.7",
        "json3": "~3.2.4",
        "jquery": "~1.9.1",
        "bootstrap-sass": "~2.3.1",
        "es5-shim": "~2.0.8",
        "angular-resource": "~1.0.7",
        "angular-cookies": "~1.0.7",
        "angular-sanitize": "~1.0.7"
    },
    "devDependencies": {
        "angular-mocks": "~1.0.7",
        "angular-scenario": "~1.0.7"
    }
}

답변:


284

devDependencies 단위 테스트, 패키징 스크립트, 문서 생성 등과 같은 개발 관련 스크립트를위한 것입니다.

dependencies 프로덕션 용도로 필요하고 개발자에게도 필요하다고 가정합니다.

devDependencieswithin을 포함 dependencies하면 해롭지 않습니다. 모듈은 설치하는 동안 더 많은 파일 (바이트)을 묶어 더 많은 (필요하지 않은) 리소스를 소비합니다. 순수 POV에서 이러한 추가 바이트는 해로울 수 있습니다. 단지 관점에 따라 다릅니다.

보고 되거하려면 bower help install, 아래에 나열된 모듈 devDependencies모듈을 통해 설치 과정을 생략 할 수 -p또는 --production, 예를 :

bower install angular-latest --production

이는 개발 플랫폼 이외의 용도로 설치를 수행하는 데 권장되는 방법입니다.

반대로, 아래에 나열된 모듈을 생략 할 방법이 없습니다 dependencies.


현재 bower@1.2.7 (참조 정자 최신 소스 ) bower help수율 :

Usage:

    bower <command> [<args>] [<options>]

Commands:

    cache                   Manage bower cache
    help                    Display help information about Bower
    home                    Opens a package homepage into your favorite browser
    info                    Info of a particular package
    init                    Interactively create a bower.json file
    install                 Install a package locally
    link                    Symlink a package folder
    list                    List local packages
    lookup                  Look up a package URL by name
    prune                   Removes local extraneous packages
    register                Register a package
    search                  Search for a package by name
    update                  Update a local package
    uninstall               Remove a local package

Options:

    -f, --force             Makes various commands more forceful
    -j, --json              Output consumable JSON
    -l, --log-level         What level of logs to report
    -o, --offline           Do not hit the network
    -q, --quiet             Only output important information
    -s, --silent            Do not output anything, besides errors
    -V, --verbose           Makes output more verbose
    --allow-root            Allows running commands as root

See 'bower help <command>' for more information on a specific command.

또한 bower help install수율 ( 최신 소스 참조 ) :

Usage:

    bower install [<options>]
    bower install <endpoint> [<endpoint> ..] [<options>]

Options:

    -F, --force-latest      Force latest version on conflict
    -h, --help              Show this help message
    -p, --production        Do not install project devDependencies
    -S, --save              Save installed packages into the project's bower.json dependencies
    -D, --save-dev          Save installed packages into the project's bower.json devDependencies

    Additionally all global options listed in 'bower help' are available

Description:

    Installs the project dependencies or a specific set of endpoints.
    Endpoints can have multiple forms:
    - <source>
    - <source>#<target>
    - <name>=<source>#<target>

    Where:
    - <source> is a package URL, physical location or registry name
    - <target> is a valid range, commit, branch, etc.
    - <name> is the name it should have locally.

bower.json에서 불필요한 dep를 제거 할 때 bower를 자동으로 제거하는 방법이 있습니까?
FutuToad

1
@FutuToad, 나는 그것을 시도하지 않았지만 bower update(오래된 deps가 제거 된 최신 버전을 얻기 위해) 다음에 bower prune(외부 로컬 패키지 삭제) 트릭을 수행 할 수 있습니다.
zamnuts

1
@MichaelTrouw 디렉토리 구조는 기본이므로 불가능합니다. 개발 머신 (또는 다른 준비 환경)의 다른 디렉토리에서 프로덕션 설치를 수행하여 FTP를 통해 스냅 샷을 대상에 업로드하는 것이 좋습니다.
zamnuts

1
@ Genu, 그렇습니다 당신은 할 수 있습니다 : github.com/blittle/bower-installer#ignore-files SO 질문을 참조하십시오 Bower 의존성에 대한 파일 필터 (포함 / 제외)
zamnuts

1
@Edgar 프로덕션 코드는에 의존해서는 안되므로 devDependencies부트 스트랩 코드, 논리 또는 정상적으로 실행되는 동안 응용 프로그램의 다른 측면의 일부가 아닙니다. 개발자 관련 작업 (빌드 스크립트, 테스트 스위트 등)을 실행하려는 경우에만 모듈을 찾을 수 없습니다. 추가 정보가 필요하면 SO에 대한 새로운 질문을하십시오. 마지막으로, bower는 사용되지 않기 때문에 bower에서 마이그레이션하는 것을 고려하십시오 : github.com/bower/bower/issues/2298
zamnuts
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.