Как исправить ошибку «Найден файл fs.readFile с нелитеральным аргументом с индексом 0»? - PullRequest
1 голос
/ 05 августа 2020

Я пытаюсь добавить 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)

...