// code snippet
tslint.json
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде:
{
"defaultSeverity": "error",
"extends": [
"tslint-eslint-rules"
],
"jsRules": {},
"rules": {}
}
рдЬрдм рдореИрдВ tslint.json
рдХреЛ рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реВрдВ
{
"defaultSeverity": "error",
"extends": "tslint-eslint-rules",
"jsRules": {},
"rules": {}
}
рдпрд╣ рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ A path in an 'extends' option must be relative or rooted, but 'tslint-eslint-rules' is not
рдореИрдВ tslint-eslint-rules
. рдХрд╛ рдкрде рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рдЖрдк tslint.json
рдФрд░ tsconfig.json
рдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реВрдБред рд╕рдВрд╕реНрдХрд░рдг 5.8.1
, рдпрд╣ рд╕рд╣реА рд╣реИред
рдпрд╣рд╛рдВ рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ред
рдмрджрд▓рд╛ рд╣реБрдЖ
"extends": [
"tslint:recommended"
],
рдкреНрд░рддрд┐
"extends": "./node_modules/tslint/lib/configs/recommended"
рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
A path in an 'extends' option must be relative or rooted, but 'xxx' is not
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЗ рдЖрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХрд╛ tsconfig .json рдЧрд▓рдд рд╣реИред рддреЛ рдпрд╛ рддреЛ рдЖрдк -p tslint.json
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕реА рд╕рд╛рдордЧреНрд░реА рд╣реИ рдЬреЛ tslint.json рдореЗрдВ рдЖрдкрдХреЗ tsconfig.json рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рднреНрд░рдорд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред
рд╣рдо рд╕реАрдПрд▓рдЖрдИ рд╕реЗ tslint рдХреЛ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
"lint": "tslint --project tslint.json -e src/**/*.spec.*",
рдпрд╣ рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдЕрднреА рд╣рдордиреЗ tslint 5.9.1 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ:
error TS5024: Compiler option 'extends' requires a value of type string.
рд╣рдорд╛рд░реЗ tslint.json
рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд 2 рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИрдВ
{
"extends": [
"tslint:recommended",
"tslint-sonarts"
],
рдХреНрдпрд╛ рдЖрдк рд╣рдореЗрдВ рдХреБрдЫ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╣рдо рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдпрджрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рддреЛ рд╣рдорд╛рд░рд╛ tsconfig рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ
{
"compileOnSave": false,
"compilerOptions": {
"lib": [
"dom",
"es2015"
],
"noImplicitAny": false,
"target": "es5",
"rootDir": "src",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true,
"jsx": "preserve",
"baseUrl": "src",
"types": [
"p-elements-core",
"@types/jasmine",
"@types/underscore",
"@types/requirejs",
"../../src/types"
]
}
}
@ StanLee12 рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╕рдЯреАрдХ CLI рддрд░реНрдХ рдХреНрдпрд╛ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рдЕрдиреНрдп рдкрддреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рдорд╛рди рдЕрдорд╛рдиреНрдп рд╕реЗрдЯрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - --project
рдзреНрд╡рдЬ рдХреЛ tsconfig.json
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ tslint.json
ред
@MartijnKooij рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╣рд╛рдБ рдереЗ extends
v5.9 рдореЗрдВ tslint.json рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЕрд╡реИрдз рд╕реЗрдЯрдЕрдк рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ рд╣реИ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдХрд╣рд╛, рдЖрдкрдХреЛ --project
рдХреЛ tsconfig.json рдлрд╝рд╛рдЗрд▓ рдХреА рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрд┐рд╕реА рднреА TSLint рдбреЙрдХреНрд╕ рдиреЗ рдХрднреА рдпрд╣ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХрд┐ --project path/to/tslint.json
рдПрдХ рд╕рдорд░реНрдерд┐рдд рдЙрдкрдпреЛрдЧ рдкреИрдЯрд░реНрди рд╣реИред
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬрдм @ajaff рдиреЗ рдХрд╣рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ tsconfig рдХреЗ рдмрдЬрд╛рдп рд╣рдорд╛рд░реЗ --project рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ tslint рдерд╛ред
рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдХрд╣реАрдВ рди рдХрд╣реАрдВ tslint рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реИред
рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ https://palantir.github.io/tslint/usage/cli/ рдкрд░ рдкреНрд░рд▓реЗрдЦрди рд╕рд╣реА рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЕрдм рдпрд╣ рд╣реИ;)
рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж, рдФрд░ рдкреВрд░реНрдгрддрд╛ рдФрд░ рдЕрдиреНрдп рдХреЗ рд▓рд┐рдПред рд╣рдо рдмрджрд▓ рдЧрдП:
"lint": "tslint --project tslint.json -e src/**/*.spec.*",
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ
"lint": "tslint --project tsconfig.json -e src/**/*.spec.*",
@ajafff @adidahiya рдореБрдЭреЗ рдмрд╣реБрдд рдЦреЗрдж рд╣реИ, рдпрд╣ рдореЗрд░реА рдЧрд▓рддреА рд╣реИ, рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
Mocha-tslint рдЕрдм рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдФрд░ рд╡рд╣рд╛рдВ configFilePath рдХреЛ tslint.json рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп tsconfig.json рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
const lint = require('mocha-tslint');
const configFilePath = './tsconfig.json';
lint(configFilePath);
рдореБрдЭреЗ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ:
tslint
No valid rules have been specified
рдпрд╣ рд╣рдореЗрд╢рд╛ 5.8 . рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛
@DaveXCS рдпрд╣ рд╕рдВрднрд╡рддрдГ mocha-tslint
рдХреБрдЫ рдЧрд▓рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдПрдХ рдирд┐рдЬреА рдПрдкреАрдЖрдИ (runner.ts) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ -c
рдФрд░ -p
рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдореЛрдЪрд╛-рдЯреНрд╕рд▓рд┐рдВрдЯ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реА рд╣реИ:
const tslintConfig = Configuration.loadConfigurationFromPath(configFilePath);
fileNames.forEach((file) => test(file, tslintConfig));
const TSLint = require('tslint');
const Linter = TSLint.Linter;
const Configuration = TSLint.Configuration;
fs.readFile(file, (err, sourceBuffer) => {
const linter = new Linter(options);
const source = sourceBuffer.toString();
linter.lint(file, source.toString(), config);
@DaveXCS рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд▓рд╛рдЗрди рд╣реИ: https://github.com/t-sauer/mocha-tslint/blob/0ba7f64be458cd74343a4149dff323d5bfd195a5/index.js#L24
рдЗрд╕реЗ tslint.json
рдХреЗ рдкрде рдХреЛ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ tsconfig.json
рдХреЗ рдкрде рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ
рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛: https://github.com/t-sauer/mocha-tslint/issues/9
рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдореИрдВрдиреЗ cli рдкрд░ --project рдХреЛ tslint.json рдХреЗ рдмрдЬрд╛рдп tsconfig.json рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ "mocha-tslint" (рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рд╕рд╣рд┐рдд) рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛:
https://gist.github.com/DaveXCS/3bd930f7093b748f551c99e80d57c578
рдпрд╣ рдЪреМрдВрдХрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЦрд░рд╛рдм рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИ, рдмрд╕ рднреНрд░рдорд┐рдд рд╣реИ рдФрд░ рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред
@devguyrun CLI рдЙрдкрдпреЛрдЧ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЖрдкрдХреЛ --project
рдХреЛ tsconfig.json
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдИ рдмрд╛рд░ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдмреЗрдЭрд┐рдЭрдХ рдПрдХ рдкреАрдЖрд░ рднреЗрдЬреЗрдВ
рддреНрд░реБрдЯрд┐ TS18001: 'рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд' рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рдкрде рд╕рд╛рдкреЗрдХреНрд╖ рдпрд╛ рдореВрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди '<%= sourcedir.split('/').map(x => '..').join('/') %
/tsconfig.json' рдирд╣реАрдВ рд╣реИред
рдореБрдЭреЗ рдХреБрдЫ рдФрд░ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@ StanLee12 рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╕рдЯреАрдХ CLI рддрд░реНрдХ рдХреНрдпрд╛ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рдЕрдиреНрдп рдкрддреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рдорд╛рди рдЕрдорд╛рдиреНрдп рд╕реЗрдЯрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ -
--project
рдзреНрд╡рдЬ рдХреЛtsconfig.json
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐tslint.json
ред@MartijnKooij рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╣рд╛рдБ рдереЗ
extends
v5.9 рдореЗрдВ tslint.json рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЕрд╡реИрдз рд╕реЗрдЯрдЕрдк рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ рд╣реИ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдХрд╣рд╛, рдЖрдкрдХреЛ--project
рдХреЛ tsconfig.json рдлрд╝рд╛рдЗрд▓ рдХреА рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрд┐рд╕реА рднреА TSLint рдбреЙрдХреНрд╕ рдиреЗ рдХрднреА рдпрд╣ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХрд┐--project path/to/tslint.json
рдПрдХ рд╕рдорд░реНрдерд┐рдд рдЙрдкрдпреЛрдЧ рдкреИрдЯрд░реНрди рд╣реИред