create-react-app install devDepencies in dependencies 部分

create-react-app install devDepencies in dependencies section

使用 create-react-app 和 运行 yarn eject 创建新项目后。

我的 package.json 的依赖项部分如下所示:

  "dependencies": {
    "autoprefixer": "7.1.1",
    "babel-core": "6.25.0",
    "babel-eslint": "7.2.3",
    "babel-jest": "20.0.3",
    "babel-loader": "7.0.0",
    "babel-preset-react-app": "^3.0.1",
    "babel-runtime": "6.23.0",
    etc.

我会说这些都是 devDependencies 为什么 create-react-app 把它们放在这里?

如果您正在构建的应用程序是一个库,那么这些都是开发依赖项,您希望将其发布给其他人使用。

基本上我的理解是这样的,如果你有一个模块可以有两种使用方式:

  • 通过 npm i
  • 消耗
  • 通过克隆项目开发

在那种情况下,将它们放在开发依赖项中是有意义的。

在你的情况下,人们将克隆你的项目来开发。并通过托管的消费它。

希望这对您有所帮助!

这是最新版本之一的有意更改。

对于生成静态包的前端应用程序,这种区别是相当随意的。从技术上讲,您不需要 any 服务器上的这些依赖项,甚至不需要运行时依赖项。因此,按照这种逻辑,甚至 react 也可能被视为开发依赖项。

我们曾经试图将它们分开,但正如上面所解释的,它一开始并不真正一致。这种区别对于没有 Node 运行时的应用程序有用没有技术原因。此外,它过去常常导致一些未安装开发依赖项的 Heroku 部署出现问题(因此无法在服务器上构建项目或在部署前对其进行测试)。

最后我们只是将所有内容都放入依赖项中。如果您不同意,您可以随时按照您认为合理的方式重新排列 package.json