Bower und devDependencies vs Abhängigkeiten

159

Ich habe 'yo angle' ausgeführt und danach festgestellt, dass 1.0.8 installiert ist. Ich habe die Angular-Komponenten deinstalliert. Die ursprüngliche Datei bower.json hatte jedoch Angular-Mocks und ein Angular-Szenario unter 'devDependencies', als ich alle 1.2 erneut hinzufügte. 0-rc.2-Komponenten Angular-Mocks und Angular-Szenario unter Abhängigkeiten anstelle von devDependencies.

Ich bin gespannt, wie devDependencies verwendet wird und ob ich es manuell reparieren oder unverändert lassen sollte. Gibt es eine Möglichkeit, in der Bower-CLI anzugeben, wie etwas als Entwicklungsabhängigkeit markiert werden soll?

Nach der Bearbeitung der Datei:

{
    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: { }
}

Vor dem Bearbeiten:

{
    "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"
    }
}
Gary
quelle

Antworten:

284

devDependencies sind für die entwicklungsbezogenen Skripte, z. B. Unit-Tests, Verpackungsskripte, Dokumentationserstellung usw.

dependencies werden für die Produktion benötigt und auch für Entwickler als erforderlich angenommen.

Einschließen devDependenciesin dependencies, wie Sie es haben, wird nicht schädlich sein; Das Modul bündelt während der Installation nur mehr Dateien (Bytes) und verbraucht mehr (unnötige) Ressourcen. Aus puristischer Sicht können diese zusätzlichen Bytes nachteilig sein, hängt nur von Ihrer Perspektive ab.

Um etwas Licht ins Dunkel zu bringen bower help install, können die unter aufgeführten Module devDependencieswährend der Modulinstallation über -poder weggelassen werden --production, z.

bower install angular-latest --production

Dies ist die empfohlene Methode, um eine Installation für etwas anderes als eine Entwicklungsplattform durchzuführen.

Im Gegenteil, es gibt keine Möglichkeit, die unter aufgeführten Module wegzulassen dependencies.


Ab [email protected] (siehe neueste Quelle von bower ) bower helpergeben sich:

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.

und weiter bower help installErträge (siehe neueste Quelle ):

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.
Zamnüsse
quelle
Gibt es eine Möglichkeit, Bower dazu zu bringen, nicht benötigte Deps automatisch zu entfernen, wenn Sie sie aus bower.json entfernen?
FutuToad
1
@FutuToad, ich habe es nicht ausprobiert, aber ein bower update(um die neueste Version mit den alten Deps zu entfernen) gefolgt von einem bower prune(löscht fremde lokale Pakete) könnte den Trick tun.
Zamnuts
1
@MichaelTrouw dies ist nicht möglich, da die Verzeichnisstruktur grundlegend ist. Ich würde vorschlagen, eine Produktionsinstallation in einem anderen Verzeichnis auf Ihrem Entwicklungscomputer (oder einer anderen Staging-Umgebung) durchzuführen und einen Snapshot davon über FTP auf das Ziel hochzuladen.
Zamnuts
1
@Genu, ja, Sie können: github.com/blittle/bower-installer#ignore-files siehe SO-Frage Filtern (
Einschließen
1
@Edgar Ihr Produktionscode sollte NICHT von Ihrem abhängen devDependenciesund ist daher nicht Teil Ihres Bootstrap-Codes, Ihrer Logik oder eines anderen Aspekts Ihrer Anwendung, während Sie normal ausgeführt werden. Nur wenn Sie versuchen, dev-bezogene Aufgaben (Build-Skripte, Testsuiten usw.) auszuführen, wird das Modul nicht gefunden. Wenn Sie weitere Informationen benötigen, stellen Sie bitte eine neue Frage zu SO. Zuletzt sollten Sie die Migration von
Bower in