我知道这很难,因为Javascript的工作方式和“一切”都可能。
但是我很累,错误经常发生,直到我运行我的代码并且一切崩溃或返回错误都没有注意到,因为我在变量或函数中写了一个拼写错误。
我担心崩溃是我能想到的最好的,一些错误可能不会立即引起注意,并发送一个“有效”的未定义值,导致一些可能潜入生产的细微错误。
是否有任何工具可以帮助您查看您正在调用未找到的函数或使用未声明的变量或类似的函数?
在我测试我的功能之前帮助我“编译”并检查代码是否正常的东西。
答案 0 :(得分:2)
你无法编译JavaScript,但你有选择:
我的个人建议是:如果可能,请使用TypeScript。否则,请使用带有ESLint的现代JS(ES201 *)和大量单元测试。不使用TypeScript使单元测试更加重要。我不会使用Flow,因为当Facebook意识到他们不会在这方面赢得微软时,它的开发和支持可能会停止。对于大型项目,请使用WebStorm。对于较小的,请使用WebStorm或VS Code。
答案 1 :(得分:0)
在我的NodeJS项目中,ESLint发现了JSLint和JSHint都没有的错别字。它也适用于浏览器javascript。
要在NodeJS中安装,请遵循the directions,例如在终端:
npm install eslint --save-dev
您可以使用以下方法初始化首选项文件:
./node_modules/.bin/eslint --init
或使用以下偏好设置将文件.eslintrc.js
放入应用的根文件夹中:
module.exports = {
"env": {
"browser": false,
"commonjs": true,
"es2021": true,
"node": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 12
},
"rules": {
}
};
检查错别字是此默认配置的一部分:
这就是配置的一部分(请参见documentation):
禁止未声明的变量(no-undef) 配置文件中的“ extends”:“ eslint:recommended”属性启用 这条规则。
然后使用以下命令运行ESLint:
./node_modules/.bin/eslint *.js
我将其添加为将代码发送到生产服务器之前的步骤。您也可以将其添加为git pre-commit hook,也可以添加为发布到npm之前的步骤。