![](/img/trans.png)
[英]Enable TSlint ordered-imports rule with module-source-path
[英]Tslint always enforcing no-submodule-imports rule even if disabled
我正在尝试将tslint配置为允许Parse
库( https://www.npmjs.com/package/parse-js )中的子模块,以便可以使用parse/react-native
,但是它不起作用。
我尝试添加"no-submodule-imports": [true, "parse", "parse/react-native"]
和"no-submodule-imports": false
在我的tslint中为"no-submodule-imports": false
,但仍然出现以下错误:
ERROR: src/App.tsx:2:19 - Submodule import paths from this package are disallowed; import from the root instead
在node_modules中此子模块的@types/parse
中的声明为:
declare module "parse/node" {
export = Parse;
}
declare module "parse" {
import * as parse from "parse/node";
export = parse
}
declare module "parse/react-native" {
import * as parse from "parse/node";
export = parse
}
该代码可以正常工作,但是如果我运行tslint,则会收到该错误。 我尝试了它的不同组合,仍然有问题。
这是我的tslint.json的样子:
{
"extends": [
"tslint:latest",
"tslint-react",
"tslint-react-a11y",
"tslint-config-prettier"
],
"no-submodule-imports": [true, "parse", "parse/react-native"],
"import-blacklist": false,
"defaultSeverity": "error",
"rules": {
"ban": {
"options": [
["_", "extend", "use object spread: { ...a, ...b }"],
["_", "isNull", "use plain JS: == null"],
["_", "isDefined", "use plain JS: != null"],
["Object", "assign", "use object spread: { ...a, ...b }"],
["Object", "getOwnPropertyNames", "use Object.keys()"],
["describe", "only", "should not be committed to repo"],
["it", "only", "should not be committed to repo"],
["test", "only", "should not be committed to repo"]
]
},
"no-object-literal-type-assertion": false,
"ordered-imports": [
true,
{
"import-sources-order": "any",
"named-imports-order": "any"
}
],
"no-any": true,
"interface-over-type-literal": false,
"linebreak-style": {
"options": ["LF"]
},
"quotemark": [true, "single"],
"jsx-boolean-value": ["never"],
"member-access": [true],
"no-console": false,
"no-implicit-dependencies": false,
"no-invalid-this": {
"options": ["check-function-in-method"]
},
"interface-name": false,
"max-classes-per-file": false,
"jsx-no-lambda": false,
"no-trailing-whitespace": true,
"no-this-assignment": [
true,
{
"allow-destructuring": true
}
],
"no-unnecessary-callback-wrapper": false,
"no-unnecessary-initializer": true,
"object-literal-sort-keys": false,
"prefer-conditional-expression": false,
"variable-name": {
"options": [
"allow-leading-underscore",
"allow-pascal-case",
"ban-keywords",
"check-format"
]
},
"member-ordering": [
true,
"private-before-public",
"static-before-instance",
"variables-before-functions"
],
"trailing-comma": [
true,
{
"multiline": "always",
"singleline": "never",
"esSpecCompliant": true
}
]
},
"jsRules": {
"object-literal-sort-keys": false
},
"linterOptions": {
"exclude": [
"/**/packages/newrelic-webpack-plugin/embedded.js",
"/**/coverage/**/*",
"/**/*.json",
"/**/build/**/*"
]
}
}
先谢谢您的帮助。
我也遇到了这个。 看起来对于有角度的项目,规则必须位于src文件夹内的tslint文件中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.