我的项目中有一个模板文件,在运行 eslint 时我面临着各种问题。其中一些是 -
error Parsing error: Unexpected token !
error Parsing error: Unexpected token <
为了克服这个问题,我尝试在没有帮助的情况下使用eslint-plugin-ejs
。我也访问过下面的链接 -
还有更多,但再次没有运气。现在我只想将此文件从 eslint 中排除,但找不到方法。任何帮助将不胜感激。
我想在我的文件中使用export default obj
而不是,因为我们在代码库中的其他任何地方都使用.module.exports = obj
.eslintrc.js
export
到目前为止没有运气,很难搜索这个问题。
我得到的错误:
> eslint src
Cannot read config file: src/.eslintrc.js
Error: Unexpected token export
src/.eslintrc.js:23
export default foo;
^^^^^^
SyntaxError: Unexpected token export
Run Code Online (Sandbox Code Playgroud) 我在多个 JavaScript 项目上进行合作。其中一些使用eslint,另一些使用standard。这是由不同且不相关的团队维护的项目,因此强迫他们使用相同的 linter 不是一个选择。
我使用 Sublime Text 3,似乎当我安装 SublimeLinter 插件,加上 SublimeLinter-contrib-standard 和 SublimeLinter-eslint 时,它们最终都会处于活动状态,因此不清楚何时在编辑器中突出显示错误,是哪个 linter 生成的它。
为了增加混乱,SublimeLinter-contrib-standard 提供了一个“保存格式”选项,该选项在保存文件时应用标准格式,例如删除所有分号。但对于依赖 eslint 并应用一组不同的 linter 规则的项目不应该这样做,例如它们可能确实使用分号。
那么,如何配置我的开发环境才能使用项目依赖的任何 linter?
我试过了:
如何为同一种语言(javascript)的每个项目启用不同的 linter?我想这一定是一个非常常见的用例,特别是对于在不同开源项目中协作的人们来说,这些项目可能遵循不同的编码标准。
我正在考虑切换到另一个可以更好地处理这个问题的编辑器。也许https://code.visualstudio.com/?如果有人对此有评论或其他编辑更好地处理这个问题,我也将不胜感激。
谢谢!
需要配置哪些设置才能使用vs 代码编辑器中的prettier 插件在打字稿文件的类中的方法声明前后添加新行?
我们如何通过在.prettierrc
或tslint.json
文件中写入任何规则来实现?
目前的行为是
function one(){
// some code
}
function two(){
// some code
}
Run Code Online (Sandbox Code Playgroud)
预期结果
function one(){
// some code
}
function two(){
// some code
}
Run Code Online (Sandbox Code Playgroud)
我在tslint.json 中尝试过以下行
"lines-between-class-methods": "true"
Run Code Online (Sandbox Code Playgroud)
但没有用
如果 div 元素为空,Airbnb linting 规则会删除关闭的 div 标签,例如:
<div></div>
Run Code Online (Sandbox Code Playgroud)
被替换为
<div/>
Run Code Online (Sandbox Code Playgroud)
我的 .eslintrc 文件是这样的:
<div></div>
Run Code Online (Sandbox Code Playgroud)
javascript eslint visual-studio-code eslint-config-airbnb eslintrc
在阅读了有关我的问题的一些问答后:
解析错误:“导入”和“导出”可能仅与“sourceType:模块”一起出现
我将.eslintrc.json写入:
{
"extends": ["airbnb", "prettier", "plugin:node/recommended"],
"plugins": ["prettier"],
"env": {
"node": true,
"es6": true,
"browser": true
},
"parser": "babel-eslint",
"parserOptions": {
"ecmaVersion": 11,
"sourceType": "module",
"allowImportExportEverywhere": true
},
"rules": {
"prettier/prettier": "error",
"spaced-comment": "off",
"no-console": "warn",
"consistent-return": "off",
"func-names": "off",
"object-shorthand": "off",
"no-process-exit": "off",
"no-param-reassign": "off",
"no-return-await": "off",
"no-underscore-dangle": "off",
"class-methods-use-this": "off",
"prefer-destructuring": ["error", { "object": true, "array": false }],
"no-unused-vars": ["error", { …
Run Code Online (Sandbox Code Playgroud) 如此处所述,有一个用于缩进的 ESLint 属性,称为indent
。该示例如下所示:
或者对于选项卡式缩进:
Run Code Online (Sandbox Code Playgroud){ "indent": ["error", "tab"] }
但是,如果我将此确切的代码粘贴到我的.eslintrc
文件中,VS Code 会将其显示为错误:
ESLint:.eslintrc 中的 ESLint 配置无效: - 意外的顶级属性“缩进”。。有关详细信息,请参阅“ESLint”输出通道。
我之前的文件.eslintrc
已经有许多规则,并且这些规则没有打印任何错误。如果我添加"indent"
到该列表或单独添加,它就会失败。
以下是 VS Code 中 ESLint 输出通道中打印的错误和堆栈跟踪:
Run Code Online (Sandbox Code Playgroud)[Error - 10:38:55 PM] ESLint stack trace: [Error - 10:38:55 PM] Error: ESLint configuration in .eslintrc is invalid: - Unexpected top-level property "indent". at validateConfigSchema (/home/aaronfranke/workspace/OddJobs/node_modules/eslint/lib/shared/config-validator.js:286:15) at ConfigArrayFactory._normalizeConfigData (/home/aaronfranke/workspace/OddJobs/node_modules/eslint/lib/cli-engine/config-array-factory.js:469:9) at ConfigArrayFactory._loadConfigDataInDirectory (/home/aaronfranke/workspace/OddJobs/node_modules/eslint/lib/cli-engine/config-array-factory.js:445:33) at ConfigArrayFactory.loadInDirectory (/home/aaronfranke/workspace/OddJobs/node_modules/eslint/lib/cli-engine/config-array-factory.js:401:18) at CascadingConfigArrayFactory._loadConfigInAncestors (/home/aaronfranke/workspace/OddJobs/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js:305:46) at CascadingConfigArrayFactory.getConfigArrayForFile (/home/aaronfranke/workspace/OddJobs/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js:250:18) at CLIEngine.executeOnText (/home/aaronfranke/workspace/OddJobs/node_modules/eslint/lib/cli-engine/cli-engine.js:860:47) at /home/aaronfranke/.vscode/extensions/dbaeumer.vscode-eslint-1.9.1/server/out/eslintServer.js:1:60107 …
我目前在我的项目中使用ESLint,并将其配置为在 VSCode 中运行,并强制执行自定义规则集。到目前为止,它按预期工作,并在我的代码中标记发生违规的行。我现在需要指定是environment
(如该问题browser
的解决方案中所建议的)。我究竟该如何做到这一点,同时保持 ESLint 的其他所有内容按原样工作?
.eslintrc
文件。但我在项目的根目录中没有看到任何此类文件。我确实看到了.eslint
几个不同依赖项中的文件,例如C:\Users\snarl\development-snarl\development-wordpress\linting-wordpress\node_modules\is-callable
我可能是错的,但这些似乎并不相关。
.eslintrc.json
我尝试在项目的根目录中创建一个新文件,然后添加到该文件中:{
"env": {
"browser": true
}
}
但是当我这样做并在 VSCode 中重新检查 ESLint 时,它停止标记我的自定义规则集中的规则(示例),并且实际上标记了一个新规则(屏幕截图)。这似乎完全取代了我现有的一些 ESLint 设置,而不是补充它们。
谢谢。
我一直在使用typescript-eslint和eslint-plugin向项目添加linting,我需要不同的 linting 规则来处理类和接口的属性。目前我正在使用命名约定规则。
对于类属性,strictCamelCase 效果很好。但是对于接口属性,我需要同时允许strictCamelCase 和PascalCase。
我想在任何地方都使用 strictCamelCase,但是在我们的代码中有些地方我需要使用 DB 列作为属性。例如:
class ActivitySearchModel extends common.Model {
attributes: {
ResultID: number;
StartDateTime: moment.Moment;
EndDateTime: moment.Moment;
Label: string;
};
}
Run Code Online (Sandbox Code Playgroud)
这种结构在整个代码库中无处不在,无法合理更改。除了这些属性,其他一切都是strictCamelCase。
是否有一种简单的方法可以为接口属性和类属性强制执行不同的命名约定?更好的是,有没有办法只允许在属性上使用 PascalCase?是让它工作自定义规则的唯一方法吗?
当前设置的 eslintrc 的相关部分:
"@typescript-eslint/naming-convention": [
"error",
{
"selector": "default",
"format": ["strictCamelCase"]
},
{
"selector": "memberLike",
"modifiers": ["private"],
"format": ["strictCamelCase"],
"leadingUnderscore": "require"
},
{
"selector": "property",
"format": ["strictCamelCase", "PascalCase"]
},
{
"selector": "property",
"modifiers": ["private"],
"format": ["strictCamelCase", "PascalCase"],
"leadingUnderscore": "require"
}
],
Run Code Online (Sandbox Code Playgroud) naming-conventions typescript eslint eslintrc typescript-eslint
我正在使用 TypeScript 通过 Jest 和 Cypress 测试我的应用程序。Jest 文件以 结尾.test.ts
,而 Cypress 测试文件以.spec.ts
. 我使用Jest ESLint 插件,它是规则附带的expect-expect
。许多 Cypress 测试不包含expect
.
如何对以 结尾的文件禁用此规则.spec.ts
?是否可以禁用特定文件扩展名的规则.eslintrc.json
?(我想避免在每个文件中都写注释.spec.ts
。)
编辑:我知道我可以添加"cy.*"
到"assertFunctionNames"
,但是我还需要为.spec
文件禁用其他规则,例如valid-expect
和valid-expect-in-promise
。
eslintrc ×10
eslint ×9
javascript ×3
node.js ×2
alert ×1
babel-eslint ×1
babeljs ×1
cypress ×1
ejs ×1
eslintignore ×1
export ×1
indentation ×1
jestjs ×1
prettier ×1
standardjs ×1
sublimetext ×1
sublimetext3 ×1
tslint ×1
typescript ×1