Eslint 禁止使用特定的环境变量

Shi*_*il 4 eslint eslintrc

我有一个超级秘密变量SUPERBASE_PRIVATE_SERVICE_ROLE,我不希望我的开发人员在除特定位置之外的任何地方使用它。

我正在尝试使用这个规则:

"no-restricted-properties": [
      "error",
      {
        "object": "process",
        "property": "env.SUPERBASE_PRIVATE_SERVICE_ROLE",
        "message": "Usage of process.env.SUPERBASE_PRIVATE_SERVICE_ROLE is not allowed."
      }
    ]
Run Code Online (Sandbox Code Playgroud)

但这失败了,有人可以告诉我出了什么问题或者有什么方法可以限制它吗?

ano*_*rmh 5

改用no-restricted-syntax

"rules": {
  "no-restricted-syntax": [
    "error",
    "MemberExpression[type=MemberExpression][object.type=MemberExpression][object.object.type=Identifier][object.object.name=process][object.property.type=Identifier][object.property.name=env][property.type=Identifier][property.name=SUPERBASE_PRIVATE_SERVICE_ROLE]"
  ],
}
Run Code Online (Sandbox Code Playgroud)

您可以使用AST Explorer评估 AST 以重现此类规则。https://github.com/eslint/eslint/issues/8505也有类似的示例。