首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >next.js应用程序重新推荐的文件夹和文件命名约定(eslint设置)是什么?

next.js应用程序重新推荐的文件夹和文件命名约定(eslint设置)是什么?
EN

Stack Overflow用户
提问于 2022-11-11 17:09:13
回答 1查看 45关注 0票数 0

( 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:

代码语言:javascript
复制
{
  "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/"]
  }
}

和依赖关系:

代码语言:javascript
复制
"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将不再找到它)

EN

回答 1

Stack Overflow用户

发布于 2022-11-11 17:49:01

我在kebap-case和next.js的特性之间使用了以下折衷方案:

a) kebap-带有可选_前缀的文件名和

( b) kebap周围的可选方括号.文件夹名称的大小写

代码语言:javascript
复制
{
  "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添加到某种忽略列表中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74405952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档