( a) Next.js在其主文件的名称中使用下划线,例如_app.js、_document.js =>参数用于使用snake_case。
( b)在GitLab存储库中,Next.js使用kebap-case作为文件夹名。
https://github.com/vercel/next.js/tree/canary/examples
和PascalCase的文件名。
https://github.com/vercel/next.js/tree/canary/examples/amp-first/components/amp
( c) Next.js support EsLint。下面是:
https://www.npmjs.com/package/eslint-plugin-folders-rules
https://www.npmjs.com/package/eslint-plugin-filenames
使用camelCase作为文件夹和文件名的默认设置(但也支持不同的约定)。
( d)对于node.js应用程序,kebap-case似乎是一种标准:
Node.js project naming conventions for files & folders
=>是否可以告诉next.js对_app.js、_document.js使用不同的名称?如果没有,我如何为eslint定义异常?
=>还是应该坚持使用snake_case (这在其他JavaScript框架中并不常见)?
下面是我当前的.eslintrc.json:
{
"extends": "next/core-web-vitals",
"plugins": [
"folders",
"filenames"
],
"rules": {
"filenames/match-regex": [2, "^[a-z-]+$", true],
"filenames/match-exported": [ 2, "kebab" ],
"folders/match-regex": [2, "^[a-z-]+$", "/front_end/"]
}
}和依赖关系:
"eslint": "8.27.0",
"eslint-config-next": "^12.3.1",
"eslint-plugin-filenames": "1.3.2",
"eslint-plugin-folders": "1.0.3",
"eslint-plugin-jest": "27.1.1",
"eslint-plugin-jsx-a11y": "6.6.1",
"eslint-plugin-node": "11.1.0",
"eslint-plugin-react-hooks": "4.6.0",

(如果我将_app.js重命名为-app.js,则next.js将不再找到它)
发布于 2022-11-11 17:49:01
我在kebap-case和next.js的特性之间使用了以下折衷方案:
a) kebap-带有可选_前缀的文件名和
( b) kebap周围的可选方括号.文件夹名称的大小写
{
"extends": "next/core-web-vitals",
"plugins": [
"folders",
"filenames"
],
"rules": {
"filenames/match-regex": [2, "^(_)?[a-z-]+$"], // kebap-case with optional _ prefix for next.js main files like _app.js
"folders/match-regex": [2, "^(\\u005B)?[a-z-]+(\\u005D)?$", "/front_end/"], // kebap-case with optional [ ] brackets
}
}允许使用_app.js和[my-variable]
我没有看到对派生名称的规则起作用的变化。
请告诉我是否有更好的选择,例如将_app.js添加到某种忽略列表中。
https://stackoverflow.com/questions/74405952
复制相似问题