首页 > 解决方案 > 如果在 package.json 中不满足依赖关系,项目为什么仍然运行和构建?

问题描述

我创建了一个 React 应用程序,为了检查 and 的行为Gemfilepackage.json我将一行package.json

"react": "^16.14.0",

"react": "^17.14.0",

在撰写本文时,React 17 还不存在。但

npm start

npm run-script build

两者仍然有效。两者yarn startyarn build也有效。为了比较行为,当我使用不存在的某些版本(例如 Rails 7.0)rails start进行修改时,它根本不会启动。这如何与and一起使用?Gemfilerailsnpmpackage.json

标签: node.jsnpmpackage.json

解决方案


用户定义的脚本start并被build执行,但它们不会触发 yarn/npm 来检查依赖树。

Node 本身会从node_modules/. 运行时不检查包版本。

一个npm installoryarn将失败,因为他们将尝试安装丢失的包。


推荐阅读