# 怎么让 eslint 认为设置已定义？

**URL:** <https://meta.discourse.org/t/how-to-convince-eslint-that-settings-are-defined/288690>\
**Category:** Development\
**Created:** [2023年十二月14日 16:00 UTC](https://meta.discourse.org/t/how-to-convince-eslint-that-settings-are-defined/288690 "2023-12-14T16:00:45Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2023年十二月14日 16:00 UTC](https://meta.discourse.org/t/how-to-convince-eslint-that-settings-are-defined/288690/1 "2023-12-14T16:00:46Z")

</div>

[https://github.com/pfaffman/discourse-custom-homepage-for-groups/actions/runs/7211339319/job/19646550333](https://github.com/pfaffman/discourse-custom-homepage-for-groups/actions/runs/7211339319/job/19646550333)

```plaintext
/home/runner/work/discourse-custom-homepage-for-groups/discourse-custom-homepage-for-groups/javascripts/discourse/initializers/custom-homepage-set.js.es6
Error: 13:11 error 'settings' is not defined no-undef
Error: 14:21 error 'settings' is not defined no-undef
Error: 19:20 error 'settings' is not defined no-undef
Error: 20:21 error 'settings' is not defined no-undef
Error: 25:36 error 'settings' is not defined no-undef
Error: 26:21 error 'settings' is not defined no-undef
Error: 32:40 error 'settings' is not defined no-undef
Error: 33:26 error 'settings' is not defined no-undef

```

[https://github.com/pfaffman/discourse-custom-homepage-for-groups/blob/main/javascripts/discourse/initializers/custom-homepage-set.js.es6](https://github.com/pfaffman/discourse-custom-homepage-for-groups/blob/main/javascripts/discourse/initializers/custom-homepage-set.js.es6)

好的。我正在使用 settings。如何让 `eslint` 相信它们已定义？我查看了许多其他示例（例如 [https://github.com/discourse/discourse-brand-header/blob/main/javascripts/discourse/initializers/initialize-mobile-decorator.js），它们似乎都没有定义](https://github.com/discourse/discourse-brand-header/blob/main/javascripts/discourse/initializers/initialize-mobile-decorator.js%EF%BC%89%EF%BC%8C%E5%AE%83%E4%BB%AC%E4%BC%BC%E4%B9%8E%E9%83%BD%E6%B2%A1%E6%9C%89%E5%AE%9A%E4%B9%89) settings。

---

<div class="post-metadata">

**Author:** ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)\
**Post date:** [2023年十二月14日 16:07 UTC](https://meta.discourse.org/t/how-to-convince-eslint-that-settings-are-defined/288690/3 "2023-12-14T16:07:58Z")

</div>

理论上，这应该由你从我们的共享 lint-configs 导入的 eslint 配置处理 🤔

[https://github.com/discourse/lint-configs/blob/main/lint-configs/eslint-theme.cjs#L7-L10](https://github.com/discourse/lint-configs/blob/main/lint-configs/eslint-theme.cjs#L7-L10)

但似乎由于某种原因，这不起作用……

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年十二月14日 16:08 UTC](https://meta.discourse.org/t/how-to-convince-eslint-that-settings-are-defined/288690/4 "2023-12-14T16:08:42Z")

</div>

好的，如果你还没读过的话，请务必读一下 @pfaffman 🙂

> <https://github.com/discourse/lint-configs/blob/main/lint-configs/README.md>

---

<div class="post-metadata">

**Author:** ![cvx](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cvx/32/152146_2.png) [@cvx](https://meta.discourse.org/u/cvx)\
**Post date:** [2023年十二月14日 16:11 UTC](https://meta.discourse.org/t/how-to-convince-eslint-that-settings-are-defined/288690/5 "2023-12-14T16:11:31Z")

</div>

嗯，也许是最新的 eslint 配置和 es6 文件之间存在不兼容。您能否在删除 .es6 后缀后查看错误是否仍然存在？

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2023年十二月14日 17:16 UTC](https://meta.discourse.org/t/how-to-convince-eslint-that-settings-are-defined/288690/6 "2023-12-14T17:16:24Z")

</div>

> [@merefield](#):
>
> 是的，如果你还没有读过，请确保阅读一下，@pfaffman 🙂
> 
> [lint-configs/lint-configs/README.md at main · discourse/lint-configs · GitHub](https://github.com/discourse/lint-configs/blob/main/lint-configs/README.md)

与其读那个，我盲目地从主题骨架复制了东西。 🤷 我认为我确实找到过一次，这解释了一些神秘之处。

> [@david](#):
>
> 理论上，这应该由你从我们的共享 lint-configs 中导入的 eslint 配置来处理 🤔
> 
> [https://github.com/discourse/lint-configs/blob/main/lint-configs/eslint-theme.cjs#L7-L10](https://github.com/discourse/lint-configs/blob/main/lint-configs/eslint-theme.cjs#L7-L10)

你非常友善地建议我的理论并非毫无价值。

> [@cvx](#):
>
> 在删除 .es6 后缀后，你能看看错误是否仍然存在吗？

 ![image](https://global.discourse-cdn.com/meta/original/4X/3/3/8/3380f69c4188e425bbb9eae2ea4dc5a99e5d8ac3.png)

啊哈。那么，有没有什么理由不全局重命名我到处的所有 es6 文件呢？

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2024年一月13日 17:17 UTC](https://meta.discourse.org/t/how-to-convince-eslint-that-settings-are-defined/288690/7 "2024-01-13T17:17:19Z")

</div>

此主题在上次回复后 30 天自动关闭。不再允许回复。
