Next.js 13 devDependency?

问题描述 投票:0回答:3

我记得在 Next.js 12 中,

dependencies
devDependencies
仍然遵循这个 answer 中的规则。但现在,当我输入
pnpm create next-app
时,所有已安装的依赖项(无论它们仅用于开发还是既用于开发又用于生产)都在
dependencies
中。

// Next 12

  "dependencies": {
    "next": "12.1.2",
    "react": "17.0.2",
    "react-dom": "17.0.2"
  },
  "devDependencies": {
    "@types/node": "17.0.23",
    "@types/react": "17.0.43",
    "@types/react-dom": "17.0.14",
    "eslint": "8.12.0",
    "eslint-config-next": "12.1.2",
    "typescript": "4.6.3"
  }

// Next 13

  "dependencies": {
    "@types/node": "18.11.9",
    "@types/react": "18.0.25",
    "@types/react-dom": "18.0.8",
    "eslint": "8.27.0",
    "eslint-config-next": "13.0.2",
    "next": "13.0.2",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "typescript": "4.8.4"
  }

Next.js 13 会自动为我进行缩小吗?我是否应该违背

create-next-app
的建议,手动将它们分开?我在文档中找不到答案。

next.js dependencies bundling-and-minification
3个回答
23
投票

正如 @kelvin 在评论中提到的,Vercel 的一名成员已明确表示

嗨,这是预期的。如果您托管在 Vercel 等平台上或使用输出:“standalone”,Next.js 不依赖于依赖项与 devDependency。

所以你的问题的正确答案是:

Next.js 13 会为我自己进行缩小吗?

是的,它会为你缩小,而且似乎它不依赖于

devDependencies
来实现它。

我是否应该手动将它们分开,不顾 create-next-app 的建议?

不,根据 Balázs Orbán 的说法,你不应该这样做,或者至少不需要这样做。但我认为,由于 next.js 不需要它,因此也不会被禁止,因为许多官方示例仍在将它们分开。

请注意,对于不使用 next.js 的 React 应用程序(以及基于 npm 和纱线包管理器的其他类型的应用程序),

dependencies
devDependencies
之间的分离仍然是必要的。

注意: Kelvin已经回答了。但作为评论,它有点隐藏。我将其作为答案发布,并附有更多解释,只是为了突出显示那些像我一样通过搜索到达这里的人的答案。


2
投票

这可能是一个错误

应该是这个

"dependencies": {
  "@next/font": "13.1.1",
  "next": "13.1.1",
  "react": "18.2.0",
  "react-dom": "18.2.0"
},
"devDependencies": {
  "@types/node": "18.11.17",
  "@types/react": "18.0.26",
  "@types/react-dom": "18.0.10",
  "eslint": "8.30.0",
  "eslint-config-next": "13.1.1",
  "typescript": "4.9.4"
}

请注意,截至目前

@next/font
也已自动安装


0
投票

过去确实如此,但我今天刚刚尝试了 create-next-app - 现在 dependencydevDependency 单独列出。

这是来自我的

package.json
文件:

"dependencies": {
    "react": "^18",
    "react-dom": "^18",
    "next": "14.0.3"
 },
 
"devDependencies": {
    "typescript": "^5",
    "@types/node": "^20",
    "@types/react": "^18",
    "@types/react-dom": "^18",
    "autoprefixer": "^10.0.1",
    "postcss": "^8",
    "tailwindcss": "^3.3.0",
    "eslint": "^8",
    "eslint-config-next": "14.0.3"
 }

© www.soinside.com 2019 - 2024. All rights reserved.