Next.js 13 devDependencies?



我记得在Next.js 12中,dependenciesdevDependencies仍然遵循这个答案的规则。但是现在,当我输入pnpm create next-app时,所有安装的依赖项(无论它们是否仅用于dev或dev和prod)都在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的建议,手动分离它们吗?我在文档中找不到答案。

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

嗨,这是预期的。Next.js不依赖于dependencies vs. devDependencies,如果你托管在像Vercel这样的平台上,或者使用output: "standalone"

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

Next.js 13为我做缩小吗?

是的,它会为你缩小,似乎它不依赖于devDependencies来实现它。

我应该手动分离它们,无视create-next-app的建议吗?

不,根据Balázs Orbán,你不应该,或者至少,你没有必要。但我认为,由于next.js没有要求,它也不被禁止,因为许多官方示例仍然将它们分开。

请注意,对于不使用next.js的react应用程序(以及其他基于npm和yarn包管理器的应用程序),dependenciesdevDependencies的分离仍然是必要的。

注意: Kelvin已经回答了。但作为评论,它有点隐藏。我把它作为一个答案和一些更多的解释,只是为了突出那些像我一样通过搜索得到的答案。

这可能是一个bug

应该是这个

"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也自动安装了

最新更新