Node.js中package.json的一些常识

  • 2018-05-28
  • 0
  • 0

1、版本号中的符号^与~

当我们查看package.json中已安装的库的时候,会发现他们的版本号之前都会加一个符号,有的是插入符号(^),有的是波浪符号(~)。那么他们到底有什么区别呢?

当我们使用最新的Node运行‘npm instal –save xxx’,的时候,他会优先考虑使用插入符号(^)而不是波浪符号(~)了。

  • 波浪符号(~):他会更新到当前minor version(也就是中间的那位数字)中最新的版本。放到我们的例子中就是:body-parser:~1.15.2,这个库会去匹配更新到1.15.x的最新版本,如果出了一个新的版本为1.16.0,则不会自动升级。波浪符号是曾经npm安装时候的默认符号,现在已经变为了插入符号。

  • 插入符号(^):这个符号就显得非常的灵活了,他将会把当前库的版本更新到当前major version(也就是第一位数字)中最新的版本。放到我们的例子中就是:bluebird:^3.3.4,这个库会去匹配3.x.x中最新的版本,但是他不会自动更新到4.0.0。

2、dependencies与devDependencies之间的区别

-–save-dev 和 -–save 的区别

我们在使用npm install 安装模块或插件的时候,有两种命令把他们写入到 package.json 文件里面去,比如:

  • -–save-dev 安装的 插件,被写入到 devDependencies 对象里面去

  • -–save 安装的 插件 ,被写入到 dependencies 对象里面去

devDependencies 和 dependencies 对象有什么区别呢?

  • devDependencies 里面的插件只用于开发环境,不用于生产环境
  • dependencies 是需要发布到生产环境的。

生产环境与开发环境

  • 开发环境,就是指开发阶段,比如webpack,gulp这些工具,都只是在开发阶段需要,一旦项目真正投入使用,便不再依赖这些插件,所以将其安装在devDependencies即可;

  • 生产环境,则表示项目真正投入使用时,此时仍然需要依赖的插件则需要安装在dependencies中,比如vue,vue-router,jQuery这些,dependencies中没有这些插件,项目真实使用时就会出错。

评论

还没有任何评论,你来说两句吧