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
。
使用 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
。