例如,我想删除一个特定的变量名,如$ abc或' $ abc',如果它存在于任何地方,我们将抛出一个linting错误。它专门用于es6代码或只是javascript代码。
我怎么能在这种情况下做到这一点?可能吗?
如果它不是替代方案,我可以检查一下,不会污染我的代码库吗?
答案 0 :(得分:5)
您可以按照评论中的说明创建your own eslint rule。这是一个小例子,它报告名称为foo
的所有标识符(不包括属性名称):
export default function(context) {
return {
Identifier(node) {
if (
node.name === 'foo' &&
(
node.parent.type !== 'MemberExpression' ||
node.parent.computed ||
node.parent.object === node
)
) {
context.report(node, 'Do not use the variable name "foo"');
}
}
};
};
答案 1 :(得分:-1)
您可以遍历代码库并检查所有文件是否存在您要消除的变量。对于你需要的东西来说,它可能有点重量级,但它可能是一种选择。
这样的事情应该可以解决问题。您必须将$ bad_variable_name替换为您的实际值 变量是。您还必须做一些事情来使您的构建失败(如果需要)
var fs = require('fs');
var checkDir = (dir) => {
var files = fs.readdirSync(dir);
files.forEach((file) => {
var path = dir + '/' + file;
var stat = fs.statSync(path);
if (stat && stat.isDirectory()) {
checkDir(path);
} else {
if(path.endsWith('this-file.js')){ //the file where this code is
return;
}
var fileContents = fs.readFileSync(path);
if(fileContents.indexOf('$bad_variable_name') > -1){
console.log('$bad_variable_name found in ' + path);
//do something here to fail your build
}
}
});
};