我正在尝试将tslint配置为允许Parse
库(https://www.npmjs.com/package/parse-js)中的子模块,以便可以使用parse/react-native
,但是它不起作用。
我尝试在tslint中同时添加"no-submodule-imports": [true, "parse", "parse/react-native"]
和"no-submodule-imports": false
,但仍然出现以下错误:
ERROR: src/App.tsx:2:19 - Submodule import paths from this package are disallowed; import from the root instead
在@types/parse
中对此node_modules中的子模块的声明是:
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/**/*"
]
}
}
预先感谢您的帮助。
答案 0 :(得分:0)
我也遇到了这个问题。看起来对于有角度的项目,规则必须位于src文件夹内的tslint文件中。