Bower และ devDependencies เทียบกับการพึ่งพา


159

ฉันรัน 'yo angular' และตระหนักในภายหลังว่ามันติดตั้ง 1.0.8 ฉันถอนการติดตั้งคอมโพเนนต์เชิงมุมอย่างไรก็ตามไฟล์ bower.json ดั้งเดิมมีมุม mocks และ angular- สถานการณ์ภายใต้ 'devDependencies' เมื่อฉันเพิ่ม 1.2 ทั้งหมดอีกครั้ง 0-rc.2 components angular-mocks และ angular-สถานการณ์ภายใต้การพึ่งพาแทนการ devDependencies

ฉันอยากรู้ว่าการใช้งานการอ้างอิงอย่างไรและถ้าฉันควรแก้ไขด้วยตนเองหรือปล่อยให้เป็นไป มีวิธีการระบุบน CLower 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"
    }
}

คำตอบ:


284

devDependencies สำหรับสคริปต์ที่เกี่ยวข้องกับการพัฒนาเช่นการทดสอบหน่วยสคริปต์บรรจุภัณฑ์การสร้างเอกสารเป็นต้น

dependencies เป็นสิ่งจำเป็นสำหรับการใช้งานจริงและคาดว่าจะต้องใช้สำหรับ dev ด้วยเช่นกัน

รวมถึงdevDependenciesภายในdependenciesอย่างที่คุณมีมันจะไม่เป็นอันตราย โมดูลจะรวมไฟล์เพิ่มเติม (ไบต์) ระหว่างการติดตั้งใช้ทรัพยากรเพิ่มเติม (ไม่จำเป็น) มากขึ้น จาก POV คนเจ้าระเบียบไบต์พิเศษเหล่านี้อาจเป็นอันตรายเพียงแค่ขึ้นอยู่กับมุมมองของคุณ

หากต้องการระบายแสงให้มองไปที่bower help installโมดูลที่อยู่ภายใต้devDependenciesสามารถละเว้นได้ระหว่างการติดตั้งโมดูลผ่าน-pหรือ--productionเช่น:

bower install angular-latest --production

นี่เป็นวิธีที่แนะนำในการติดตั้งสิ่งอื่นนอกเหนือจากแพลตฟอร์มการพัฒนา

dependenciesในทางตรงกันข้ามมีวิธีการโมดูลงดจดทะเบียนภายใต้


bower@1.2.7 (ดูแหล่งข้อมูลล่าสุดของ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'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?
FutuToad

1
@FutuToad ฉันยังไม่ได้ลอง แต่ a bower update(เพื่อรับเวอร์ชันล่าสุดพร้อม deps เก่าที่ถูกลบ) แล้วตามด้วยbower prune(ลบแพคเกจที่ไม่เกี่ยวข้องกับภายนอก) อาจทำตามได้
zamnuts

1
@MichaelTrouw สิ่งนี้เป็นไปไม่ได้เนื่องจากโครงสร้างไดเรกทอรีเป็นพื้นฐาน ฉันขอแนะนำให้ทำการติดตั้งผลิตในไดเรกทอรีอื่นบนเครื่องพัฒนาของคุณ (หรือสภาพแวดล้อมการจัดเตรียมอื่น ๆ ) อัปโหลดสแน็ปช็อตนั้นผ่าน FTP ไปยังเป้าหมาย
zamnuts


1
@Edgar รหัสการผลิตของคุณไม่ควรขึ้นอยู่กับคุณdevDependenciesและดังนั้นจึงไม่ได้เป็นส่วนหนึ่งของรหัส bootstrap ของคุณตรรกะหรือแง่มุมอื่น ๆ ของแอปพลิเคชันของคุณขณะที่ทำงานตามปกติ เฉพาะในกรณีที่คุณพยายามเรียกใช้งานที่เกี่ยวข้องกับ dev (สร้างสคริปต์, ชุดทดสอบ ฯลฯ ) คุณจะไม่พบโมดูล หากคุณต้องการข้อมูลเพิ่มเติมโปรดถามคำถามใหม่เกี่ยวกับ SO สุดท้ายให้พิจารณาย้ายออกจากซุ้มเพราะมันเลิกมาก: github.com/bower/bues/issues/2298
zamnuts
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.