// 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が間違っている場合、typescriptコンパイラから取得されます。 したがって、 -p tslint.json
使用しているか、tslint.jsonにあるはずのコンテンツをtsconfig.jsonに追加しています。
ここに別の混乱したユーザー。
を使用してCLIからtslintを呼び出しています"lint": "tslint --project tslint.json -e src/**/*.spec.*",
これは、過去1年間は問題なく機能しました。 ちょうど今、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
フラグは、 tslint.json
ではなくtsconfig.json
ファイルを指している必要があります。
@MartijnKooij v5.9のtslint.jsonのextends
機能の実装にいくつかの変更があり、誤って無効なセットアップが機能しなくなったに違いありません。 上で述べたように、 --project
をtsconfig.jsonファイルにポイントする必要があります。 TSLintドキュメントのいずれも、 --project path/to/tslint.json
がサポートされている使用パターンであると主張したことはありません。
@ajafffは、我々は--projectパラメータとして代わりのTSconfigの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
が何か間違ったことをしていることが原因である可能性があります。 彼らはプライベートAPI(runner.ts)を使用し、構成ファイルを-c
AND -p
引数として使用していると思います。
mocha-tslintの問題を理解しようとしましたが、ここでは実際には問題が発生していません。
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);
ご協力いただきありがとうございます。
cliの--projectをtslint.jsonではなくtsconfig.jsonに置き換え、「mocha-tslint」を書き直しました(型チェックも含む)。
https://gist.github.com/DaveXCS/3bd930f7093b748f551c99e80d57c578
これは驚くほど文書化が不十分で、混乱を招き、直感的ではありません。
@devguyrun CLIの使用法のドキュメントでは、 --project
がtsconfig.json
ファイルを複数回指すように指示されています。 もっと明確にできると思われる場合は、PRを送信してください
エラーTS18001: 'extends'オプションのパスは相対的またはルート化されている必要がありますが、 '<%= sourcedir.split(' /')。map(x => '..')。join( '/')%
/tsconfig.json 'はそうではありません。
他のエラーが発生しました。
最も参考になるコメント
@ StanLee12使用している正確なCLI引数は何ですか? このスレッドの他のレポーターと同じ無効な設定を使用している可能性があると思います。
--project
フラグは、tslint.json
ではなくtsconfig.json
ファイルを指している必要があります。@MartijnKooij v5.9のtslint.jsonの
extends
機能の実装にいくつかの変更があり、誤って無効なセットアップが機能しなくなったに違いありません。 上で述べたように、--project
をtsconfig.jsonファイルにポイントする必要があります。 TSLintドキュメントのいずれも、--project path/to/tslint.json
がサポートされている使用パターンであると主張したことはありません。