最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • package.json中的depends

    正文概述 掘金(伊水河)   2020-11-25   580

    最近几天上传了个npm包,自己install之后发现其所在node_module下的目录结构中也包含了一个node_module文件夹,如图:

    package.json中的depends

    为什么会这样呢,来试试我们常用的几个依赖

    dependencies

    查询package.json后,发现是这样写的:

    "dependencies": {
        "mobx": "^4.15.5"
    }
    

    没错,这就是元凶。这会导致

    • 如果项目中还未安装mobx,那么会在node_module安装所依赖的版本
    • 如果项目中已安装其他版本的mobx,则会在npm install时,直接在自己的目录中安装指定的版本(4.x

    这就造成了多版本共存:

    package.json中的depends

    如果声明多个版本呢?

    "dependencies": {
        "mobx": "4.x||5.x"
    }
    

    经测:

    • 先安装mobx,再安装test-depend,那么卸载test-depend时也不会卸载mobx
    • 未安装mobx,安装test-depend时会自动安装mobx,卸载test-depend同时也会卸载mobx

    个人还是不太喜欢。

    devDependencies

    开发常用的依赖还有devDependencies,但在npm install时并不会有任何作用

    "devDependencies": {
        "mobx": "^4.15.7"
    },
    

    peerDependencies

    这个依赖项我们在平常的开发中很少会用到,但是在发布npm包时却非常有用

    "peerDependencies": {
        "mobx": "^4.15.7"
    }
    

    peerDependencies声明了自己开发的包的依赖,在安装包时并不会强制安装依赖,只是检查node_module文件夹下是否已有所依赖的包及版本是否匹配。如上所示,在安装这样一个包时,如果项目中没有安装mobx或安装的版本不对,则会给出提示:

    package.json中的depends

    当然也可以指定多个版本,只要安装在指定的版本范围内即可

    "peerDependencies": {
        "mobx": "4.x||5.x"
    }
    

    附:depends的多种版本写法

    {
        "dependencies" :{ 
            "foo" : "1.0.0 - 2.9999.9999", // 指定版本范围
            "bar" : ">=1.0.2 <2.1.2", 
            "baz" : ">1.0.2 <=2.3.4", 
            "boo" : "2.0.1", // 指定版本
            "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0", 
            "asd" : "http://asdf.com/asdf.tar.gz", // 指定包地址
            "til" : "~1.2",  // 最近可用版本
            "elf" : "~1.2.3", 
            "elf" : "^1.2.3", // 兼容版本
            "two" : "2.x", // 2.1、2.2、...、2.9皆可用
            "thr" : "*",  // 任意版本
            "thr2": "", // 任意版本
            "lat" : "latest", // 当前最新
            "dyl" : "file:../dyl", // 本地地址
            "xyz" : "git+ssh://git@github.com:npm/npm.git#v1.0.27", // git 地址
            "fir" : "git+ssh://git@github.com:npm/npm#semver:^5.0",
            "wdy" : "git+https://isaacs@github.com/npm/npm.git",
            "xxy" : "git://github.com/npm/npm.git#v1.0.27",
        }
    }
    

    起源地下载网 » package.json中的depends

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元