我一直在尝试将Visual Studio中的angular项目更新为特定版本的angular。
我遵循的是this tutorial,我做的事情有所不同,因为在本教程中,我获得了最新的角度版本,并且我特别想要角度版本6。
为此,我确实运行了npm install -g @angular/cli@6.2.9
而不是教程一(npm install -g npm-check-updates
)
就像教程一样,我还是运行了ncu -u
命令之后。
最后我还是得到了版本7的package.json,这不是我想要的。
我知道ncu
的意思是npm-check-updates
,并且熟悉在全球安装的-g
。 ncu -u
到底是做什么的,它会更新吗?
所以它忽略了我的6版本,反正还是最后一个版本?
我应该在这里做什么?我想查看我的包json上的更改,但更改为6而不是7,但是此命令适用于7。
就像教程中的图像一样,您可以在命令行/ PowerShell中看到之前和之后的内容(我按照教程中的说明在admin中使用PowerShell)。
我尝试使用此 https://update.angular.io/
这仍然导致我使用版本7 ...,而不是我在下拉菜单中选择的版本6.1。 查看图片
答案 0 :(得分:0)
如ncu软件包description
中所述ncu -u 会将package.json依赖项升级到最新版本,而忽略指定的版本。
npm-check-updates维护您现有的语义版本控制 策略,即它将“ express”:“ ^ 4.0.0”升级为“ express”: “ ^ 5.0.0”。
它仅修改您的package.json文件。运行npm install进行更新 您已安装的软件包和package-lock.json。
运行ncu -u后,您可能会收到另一个错误,如下所示:
项目依赖关系树可能存在问题。它是 可能不是Create React App中的错误,而是您需要修复的问题 本地。
Create React App提供的react-scripts软件包需要一个 依赖项:
“ babel-eslint”:“ 10.0.1”
不要尝试手动安装它:您的包管理器会执行 自动。但是,另一个版本的babel-eslint是 在树中检测到更高的位置:
.. ClientApp \ node_modules \ babel-eslint (版本:10.0.2)
对于初学者来说,node.js中的依赖地狱非常令人困惑,修复一个错误时,您会得到另一个错误,而另一个错误等等。
但是当您开始阅读每个错误并仔细提示时,您很快就会知道问题出在哪里以及如何解决。
执行后出现错误
ncu -u
有关依赖性问题的信息,即您的package.json现在包含最新版本,而某些软件包可能还依赖于某些软件包,但不依赖最新版本。
例如
最新版本的 react-scripts 软件包(目前@ 3.0.1取决于@ 10.0.1的babel-eslint)但是目前最新的babel-eslint已经是@ 10.0.2。
ncu -u命令将最新的babel-eslint@10.0.2放入package.json文件中。
要解决此问题,您需要按照完整的错误文本(较长)中提到的步骤进行操作,或者将babel-eslint版本手动降级为“ 10.0.1”。
npm i babel-eslint@10.0.1
您可能会发现列出其他有冲突的软件包的有用信息
npm ls [conflicting_package]
npm ls babel-eslint
+-- babel-eslint@10.0.2 - explicit dependency in your package.json on babel-eslint.
`-- react-scripts@3.0.1 - explicit dependency in your package.json on react-scripts.
`-- babel-eslint@10.0.1 - implicit dependency with different version