npm / Frameworks /如何知道应该使用哪个版本?

我面对的问题是, 我永远不知道哪个版本的npm,Ionic等, 我应该安装

例如:

  • “哦,一个新的Ionic CLI版本在这里,让我们安装它”
  • 安装CLI v3.9.0
  • “哦,我的项目中没有任何工作了,Mhhh让我们更新框架”
  • 安装离子angular3.6.0
  • “哦,让CLI工作我需要一个5以上的npm版本”
  • 安装新的npm版本

而且毕竟更新什么都 行不通 ,因为这个版本的bla bla bla 不适用于那个bla bla bla的版本。 我们都知道斗争。

但是,在所有的论坛中,总有一些人似乎知道你需要从什么框架安装哪个版本才能让你的项目运行。

那里也有很多编程教程。 但是首先我们需要学习结构,以及所有框架和客户如何相互关联和合作。

我和其他人一样,想知道如何知道我不应该安装新的更新,因为它与其他框架不兼容。 但是,如果没有我们初学者的知识,我们会立即安装更新,而不知道是否会更好。

这是另一个例子:

如果不知道Ionic 3.6需要低于5的npm才能完美工作,则可以安装npm 5+。 现在你想为你的项目安装一个插件,并在例子中得到一个GYP错误。 那么不知道你的NPM版本只是导致错误一个初学者会浪费这么多的时间search如何reslove GYP错误。 逻辑。 因为在他安装npm 5+之前,他应该怎么知道他必须等待更新版本的Ionic

所以,请帮助我和许多其他人,解释并让我们知道我们需要知道的信息的位置和方式,所以最终初学者也是知道如何做“版本控制”的专家。

首先你可能想看看语义版本 。 对我而言,这是发展中最重要的概念之一。 这意味着版本控制必须以允许其他人预测升级时会发生什么的方式完成。 版本控制应该像这样完成:

主修未成年人 补丁

  • 补丁 :错误修复(不要更改库/框架行为)
  • 次要 :新function,向后兼容(不要更改库/框架行为)
  • 主要 :新function,而不是向后兼容(使用这个库打破你的当前应用程序)

所以,你知道如果新的库版本将与您目前的实施相兼容。

然后,在更新一个库之前,你也必须经常查看更新日志,尤其是像Ionic这样的大型库。 例如,你可以在这里findIonic的。 它通常会通知您重大更改(如果主要版本),不兼容性和要迁移的步骤。 另外,Ionic(也可能是其他库)经常提供像这里一样的package.json依赖项列表。 根据我的经验,这个列表是重要的,因为更新版本的依赖关系可能与新的库版本不兼容。 如果没有提供,启动器应用程序也可能是有用的。 它们经常与“父”库/框架一起更新,并且它们的依赖关系通常是最新的。 请参阅此Ionic App Base package.json

Ionic使用GitHub,但根据框架或库,您可能直接在他们的网站或其他地方find这个更新日志。

最后,您可能仍然存在不兼容问题。 那么你唯一的select就是debugging。 当您发现崩溃的库时,您可以查看已打开的问题/论坛,并查看是否存在已知的不兼容性。

总而言之,我认为更新总是需要一些工作,至less在更新之前,如果可能会导致任何问题,则需要进行调查。

find工作configuration的一种方法是查看项目是否使用某种forms的持续集成。 在那种情况下,应该定义一个构build和testing环境。

看看离子和离子仓库,他们似乎使用当前节点7和节点6.1.0:

https://github.com/ionic-team/ionic/blob/master/circle.yml

https://github.com/ionic-team/ionic-cli/blob/master/circle.yml