简体   繁体   English

Tslint始终强制执行no-submodule-imports规则,即使已禁用

[英]Tslint always enforcing no-submodule-imports rule even if disabled

I'm trying to configure my tslint to allow submodules from the Parse library ( https://www.npmjs.com/package/parse-js ) so I can use parse/react-native , but it doesn't work. 我正在尝试将tslint配置为允许Parse库( https://www.npmjs.com/package/parse-js )中的子模块,以便可以使用parse/react-native ,但是它不起作用。

I have tried to do add both "no-submodule-imports": [true, "parse", "parse/react-native"] and "no-submodule-imports": false in my tslint but I still get the following error: 我尝试添加"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

The declaration in @types/parse for this submodule in node_modules is: 在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
}

The code does work fine, but if I run tslint I get that error. 该代码可以正常工作,但是如果我运行tslint,则会收到该错误。 I tried different combinations of it and still have the issue. 我尝试了它的不同组合,仍然有问题。

Here's what my tslint.json looks like: 这是我的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/**/*"
    ]
  }
}

Thanks in advance for the help. 先谢谢您的帮助。

I ran across this also. 我也遇到了这个。 It looks like for an angular project the rule needs to be in the tslint file inside of the src folder. 看起来对于有角度的项目,规则必须位于src文件夹内的tslint文件中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM