Bower и devDependencies против зависимостей

Я побежал 'yo angular' и понял после этого, что он устанавливает 1.0.8, я удалил компоненты angular, однако исходный файл bower.json имел angular -mocks и angular -scenario в разделе ' devDependencies ", когда я повторно добавляю все компоненты 1.2.0-rc.2 angular -mocks и angular -scenario под зависимостями вместо devDependencies.

Мне любопытно, как используются devDependencies, и если я должен потрудиться, исправляя его вручную или оставляя как есть. Есть ли способ указать на CLI Bower, как отметить что-то как зависимость 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"
    }
}

Ответ 1

devDependencies относятся к сценариям, связанным с разработкой, например. модульное тестирование, сценарии упаковки, создание документации и т.д.

dependencies необходимы для использования в производстве и считаются необходимыми для dev также.

Включение devDependencies внутри dependencies, как у вас есть, не будет вредным; модуль будет просто связывать больше файлов (байтов) во время установки, потребляя больше (ненужных) ресурсов. Из пуристического POV эти дополнительные байты могут быть вредными, просто зависит от вашей перспективы.

Чтобы пролить некоторый свет, глядя на bower help install, модули, перечисленные в разделе devDependencies, могут быть опущены во время установки модуля через -p или --production, например:

bower install angular-latest --production

Это рекомендуемый способ выполнить установку только для платформы разработки.

Напротив, нет способа опустить модули, перечисленные в разделе dependencies.


Начиная с [email protected] (см. последний источник bower), 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 bower.json dependencies
    -D, --save-dev          Save installed packages into the project 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.