在使用npm创建新项目后,我应该手动更新package.json中的依赖项版本吗?

时间:2018-02-13 16:10:18

标签: npm package.json vuetify.js

我已经安装了包含Electron和Vuetify框架的样板:https://github.com/vuetifyjs/electron

问题:

我现在应该手动将package.json中的这些版本更改为最新版本并再次运行npm install吗?

 "dependencies": {
    "vue": "^2.4.2",
    "vuetify": "0.17.4",
    "vue-electron": "^1.0.6",
    [...]
  },
  "devDependencies": {
    "electron": "^1.7.5",
    [...]
  }

如果这些依赖项仍然没有下载最新版本,为什么这些依赖项具有^符号?

样板文件在其中一个组件中包含此代码,并显示已安装的版本:

<script>
 export default {
    data () {
      return {
        electron: process.versions['atom-shell'],
        node: process.versions.node,
        vue: require('vue/package.json').version
      }
    }
  }
</script>

它表明它使用最新版本的vuejs(v2.5.13),但节点和电子的古代版本:

enter image description here

  • Electron: 1.7.10即使在package.json我看到"electron": "^1.7.5",而最新版本为1.8.2。那是为什么?

  • Node: 7.9.0我甚至都没有在package.json中看到它。如何将其更新为9.5.0?我想,更新Electron会自动更新节点,它是如何工作的?

2 个答案:

答案 0 :(得分:2)

就我使用npm-packages而言,可以手动将npm-package版本更改为必需但可用的版本。在package.json中进行更改后,您可以安装依赖项或运行npm install,它会将指定的包安装到项目目录中。

波形符(〜)符号表示特定包版本的最右侧值将增加到已发布的最新可用版本值。简而言之,版本~1.1.2将匹配并且可以更新该特定包的所有1.1.X版本,但不会匹配或更新1.2.0版本。虽然~1.2会匹配,但最新可以更新到1.2.*1.X.*

插入符号(^)允许您将包更新到最新的主要版本(引用第一个包版本号)。即^1.1.2将与包括1.x.x在内的任何1.2.0版本匹配,但不会匹配或更新2.0.0

答案 1 :(得分:0)

为我工作:

1. npm update vue

如果出现错误:

  

vue-template-compiler和vue应该是同一版本

然后运行第2步和第3步

2. npm uninstall vue-template-compiler 
3. npm install vue-template-compiler