Неожиданная смесь '||'и '&&' при использовании babel - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь собрать и опубликовать пакет для npm, и я использую babel.Но когда его строит, он показывает мне это предупреждение:

Строка 1: «использовать строгий» не требуется внутри строгих модулей

Строка 23: неожиданное сочетание «||»и '&&' без смешанных операторов

Вот мой метод:

function required(value) {
  if (
    value === null ||
    value === undefined ||
    ("string" === typeof value && value.trim().length === 0) ||
    value.length === 0
  )
    return false;
  return true;
}

А вот как его преобразование:

function required(value) {
  if (value === null || value === undefined || "string" === typeof value && value.trim().length === 0 || value.length === 0) return false;
  return true;
}

Я удаляю() внутри этого "string" === typeof value && value.trim().length === 0, и он делает это внутри каждого if else блока

Вот мой babel.config.js:

module.exports = function(api){
    api.cache(true);

    const presets = [ "@babel/preset-env", "@babel/preset-react" ];
    const plugins = [ ];

    return {
        presets,
        plugins
    };
}

и вот мой package.json:

{
  "scripts": {
    "prepublishOnly": "babel ./src --out-dir ./dist -s inline"
  },
  "devDependencies": {
    "@babel/cli": "^7.4.4",
    "@babel/core": "^7.4.5",
    "@babel/preset-env": "^7.4.5",
    "@babel/preset-react": "^7.0.0",
    "moment": "^2.24.0",
    "react-dom": "^16.8.6"
  },
  "dependencies": {},
  "peerDependencies": {
    "react": "^16.8.6"
  },
  "files": [
    "dist/*"
  ]
}

1 Ответ

1 голос
/ 12 июня 2019

Вавилон прямо здесь: скобки не нужны, поскольку приоритет оператора , && имеет более высокий приоритет, чем ||.

И Линтер прав, говоря, что этот код не читается.

Но вывод Babel предназначен не для ваших человеческих глаз или линта, а для браузера.

Не задерживай выход Вавилона. Ошибка в вашей цепочке сборки.

Примечание: вы можете заменить

if (a) return false;
return true;

с

return !a;
...