我正在尝试在 TypeScript 项目中添加 eslint-plugin-security。然而,对于这些代码
import { promises as fsp } from 'fs';
import fs from 'fs';
import path from 'path';
const index = await fsp.readFile(path.resolve(__dirname, './index.html'), 'utf-8');
const key = fs.readFileSync(path.join(__dirname, './ssl.key'));
await fsp.writeFile(path.resolve(__dirname, './sitemap.xml'), sitemap);
我收到了很多这样的 ESLint 警告:
warning Found fs.readFile with non literal argument at index 0 security/detect-non-literal-fs-filename warning Found fs.readFileSync with non literal argument at index 0 security/detect-non-literal-fs-filename warning Found fs.writeFile with non literal argument at index 0 security/detect-non-literal-fs-filename
但我仍然不知道如何解决它。任何指南都会有帮助!谢谢
更新:
发现只要使用传递
path.join
或path.resolve
返回的路径就会出现这个ESLint问题。
如果我更改为绝对路径,ESLint 问题就消失了。然而,这会失去相对路径的好处
path.join
或 path.resolve
。
fs.readFileSync('/Users/me/project/ssl.key');
寻找替代/更好的方法(如果存在)。
(可能是误报?询问于 https://github.com/nodesecurity/eslint-plugin-security/issues/65)
这是一场虚惊,是的。它已在 https://github.com/eslint-community/eslint-plugin-security/pull/109 中修复,并根据
项目的变更日志在
[email protected]
中发布。