Javascript 意外的'||';和'&&';使用巴别塔时

Javascript 意外的'||';和'&&';使用巴别塔时,javascript,reactjs,npm,babeljs,Javascript,Reactjs,Npm,Babeljs,我正在尝试构建一个包并发布到npm,我正在使用babel。但是当它建造的时候,它向我展示了这个警告: 第1行:“使用严格”在严格模块中是不必要的 第23行:“| |”和“&&”的意外混合没有混合运算符 以下是我的方法: function required(value) { if ( value === null || value === undefined || ("string" === typeof value && value

我正在尝试构建一个包并发布到
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
    };
}
这是我的
包.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/*"
  ]
}

巴贝尔就在这里:不需要括号,因为,
&&
的优先级高于
|

linter说这段代码不可读是对的

但是巴别塔的输出并不是为你的人眼或一根短绒准备的,它是为浏览器准备的


别把巴贝尔的头发弄脏了。这个bug在你的构建链中

旁注:您可以更换

if (a) return false;
return true;


你的建筑怎么样?林特写的那些警告是什么?这条信息很可能来自于。问题是为什么要对编译后的文件进行lint?我预计会有更多的错误,因为只要语义正确,它们不需要符合编码标准。@VLAZ为什么会有更多的错误?@ErtanHasani,正如我所说,编译后的输出不需要符合编码准则,Babel只需编译成语义上与输入代码相同的东西。一旦它这样做了,它可能会产生不符合linter规则的代码,你不应该期望其他情况,但实际上它会吐出不符合规则的代码。@VLAZ哦,好的,我现在明白了。非常感谢。“不要忽略Babel的输出。错误就在你的构建链中。”是的,这听起来很有道理
return !a;