Как решить ошибку ESLint «предпочитать экспорт по умолчанию» при экспорте переменной? - PullRequest
0 голосов
/ 11 марта 2020

В моем отдельном файле validation.js я экспортирую переменную с именем noFutureDate:

export const noFutureDate = value => {
  const userDate = value.split('-').join('');
  ...
  return userDate < now;
};

Затем в свой компонент я импортирую noFutureDate примерно так:

import { noFutureDate } from '@/validation';

Но ESlint досадно говорит:

ошибка: предпочтение экспорта по умолчанию (import / предпочитает-default-export) при src / validation. js: 1: 1:

I знаете, как использовать export default с функциями и тому подобным, но что делать здесь с моей переменной noFutureDate, как я могу ее экспортировать, сохраняя ESLint счастливым?

Ответы [ 2 ]

1 голос
/ 11 марта 2020
const noFutureDate = value => {
  const userDate = value.split('-').join('');
  ...
  return userDate < now;
};

export default noFutureDate;
1 голос
/ 11 марта 2020

Всякий раз, когда вы видите / sla sh в правиле, это правило не исходит от собственно ESLint.

import/prefer-default-export - это правило, которое исходит от eslint-import-plugin (которое вы можете были импортированы напрямую или импортированы некоторые конфигурации, которые вы используете в своей среде).

В документах по этому правилу на https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/prefer-default-export.md не упоминается, почему это правило предлагается; некоторые правила приведены исключительно по стилистическим причинам c (и действительно, тот же плагин позволяет принудительно применить обратное: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-default-export.md). У названного импорта есть больше оснований в пользу его использования, которое я видел, например, что он может быть гибким для добавления в экспорт в будущем.

Так что, как правило, многие правила eslint (или правила, установленные плагины) имеют веские основания, другие можно смело игнорировать. Если плагин vue -specifi c не рекомендует его по каким-либо причинам, связанным с этой средой (я сам не знаю vue. js), я думаю, вы можете смело игнорировать это.

Есть разные способы игнорировать правила в eslint. Вы можете отключить встроенным комментарием , просто для группы файлов в файле .eslintrc.*, или вы можете просто отключить правило для всего проекта .

Однако, если вы действительно хотите изменить свой код, а не игнорировать его или считаете, что для этого есть причина, вы можете сделать следующее:

export default value => {
  const userDate = value.split('-').join('');
  // ...
  return userDate < now;
};

и в другом файле:

import noFutureDate from '@/validation';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...