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;