zoukankan      html  css  js  c++  java
  • nodejs的dependency.md

    dependency和devDependency的区别

    package-a
    
    --- package-b (dependency)
    
    --- | --- package-c (devDependency)
    
    --- | --- package-cc (dependency)
    
    --- package-d (devDependency)
    
    --- | --- package-e (dependency)
    

    npm install后,package-b、package-d、package-cc,package-e 会被安装,其它不会被安装。
    npm install --production后,package-b、package-cc 会被安装。其它不会被安装。

    > npm install react --save  // 做为 dependencies 安装
    > npm install eslint --save-dev // 做为 devDependencies 安装
    

    peerDependencies

    package-a
    
    --- package-b (dependency)
    
    --- | --- package-c (dependency)
    
    --- package-c (dependency)
    
    

    在npm1和npm2中,npm install后,会有两次package-c的下载和安装。
    package-b的package.json,设定peerDependencies为package-c后,会只下载和安装一次package-c。

    在npm3中,依赖树扁平化,peerDependencies中声明的依赖不会被npm自动安装,而是输出warning日志。

    optionalDependencies

    npm install optionalDependencies指定的包失败后,依然能继续安装。

    bundleDependencies(bundledDependencies)

    一个包含了包名称的数组,这些包会在发布一起被打包

    Bundled dependencies 应该在您的项目中。该功能基本上与正常的dependencies相同。当运行yarn pack时,它们也会被打包

    正常的dependencies通常从npm的registry中安装。Bundled Dependencies在正常的dependencies不足的情况下很有用:

    当您想重新使用不是来自npm registry或者被修改的第三方库时
    当您想重新使用您自己的项目作为模块时
    当您想要分发一些文件和您的模块时

    实用策略

    1. 升级到NPM3,保持依赖树扁平化
    2. 固定模块版本号,不使用~,^,<,>这些不确定的版本标识符
    3. 不用peerDependencies

    参考链接:
    http://javascript.ruanyifeng.com/nodejs/packagejson.html
    https://github.com/SamHwang1990/blog/issues/7
    http://yarnpkg.top/DependencyType.html
    https://segmentfault.com/a/1190000008398819

  • 相关阅读:
    使用ab进行页面的压力测试
    apache http server2.2 + tomcat5.5 性能调优
    php Try Catch多层级异常测试
    用flask实现的添加后保留原url搜索条件
    会议室预定设计
    day4
    day3
    day2
    day1
    redis介绍以及安装
  • 原文地址:https://www.cnblogs.com/samwu/p/6721716.html
Copyright © 2011-2022 走看看