Я пытаюсь добавить eslint-plugin-security в проект TypeScript. Однако для этих кодов
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
Я нашел документ об этой ошибке ESLint в https://github.com/nodesecurity/eslint-plugin-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)