BowerとdevDependenciesと依存関係


159

私は「yo angular」を実行し、その後1.0.8をインストールすることに気付きましたが、angularコンポーネントをアンインストールしましたが、1.2をすべて追加し直すと、元のbower.jsonファイルには「devDependencies」の下にangular-mocksとangular-scenarioがありました。 0-rc.2コンポーネントdevDependenciesではなく依存関係の下でangular-mocksとangular-scenario。

私はdevDependenciesがどのように使用されているのか、手動で修正するか、そのままにする必要があるのか​​について知りたいです。バウンダリCLIで開発依存としてマークする方法を指定する方法はありますか?

ファイルを編集した後:

{
    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 本番環境での使用には必須であり、開発者にも必須であると想定されています。

あなたがそれを持っているように、devDependenciesdependenciesに含めても害はありません。モジュールは、インストール中により多くのファイル(バイト)をバンドルするだけであり、より多くの(不要な)リソースを消費します。純粋な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を削除するときに、不要なdepを自動削除する方法はありますか?
FutuToad 2014年

1
@FutuToad、私は試していませんが、bower update(古いdepを削除して最新バージョンを取得する)の後にbower prune(無関係なローカルパッケージを削除する)とうまくいく場合があります。
zamnuts 2014年

1
@MichaelTrouwディレクトリ構造が基本であるため、これは不可能です。開発マシン(または他のステージング環境)の別のディレクトリで本番インストールを実行し、そのスナップショットをFTP経由でターゲットにアップロードすることをお勧めします。
zamnuts 2014


1
@Edgarプロダクションコードはに依存しないようにする必要があるdevDependenciesため、通常実行中のブートストラップコード、ロジック、アプリケーションの他の側面の一部ではありません。開発関連のタスク(ビルドスクリプト、テストスイートなど)を実行しようとした場合にのみ、モジュールが見つかりません。さらに情報が必要な場合は、SOで新しい質問をしてください。最後に、Bower
zamnuts
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.