如何配置 angular 项目 tsconfig paths[] 而不会出现 linting 错误?
how to configure an angular project tsconfig paths[] without linting errors?
我们的 tsconfig.ts
中有以下配置
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "src",
"paths": {
"@app/*": ["app/*"],
"@pages/*": ["app/pages/*"]
...
},
然后我们可以在其他 ts 文件中使用更清晰的导入,如下所示:
import {UrlConstants} from '@app/common/constants/url-constants';
检查项目时出现问题:
Module '@app/common' is not listed as dependency in package.json
有什么方法可以解决这个问题而不用回到使用 ./***/***/
导入?
您可以使用此处记录的白名单配置规则 https://palantir.github.io/tslint/rules/no-implicit-dependencies
看起来像这样:
tslint.json
{
"rules": {
"no-implicit-dependencies": [
true,
[
"app",
"pages"
],
"dev"
]
}
}
"dev" 选项并不真正适合您的场景,但如果您像我喜欢的那样检查测试,它会很有用。
就我个人而言,我认为规则应该更聪明,并尝试在某种程度上解析路径的 tsconfig。有时一个人有很多路径,并不是每个人都使用 NPM。 JSPM 用户可能不得不禁用该规则,这是一种耻辱,因为如果您不碰到这个粗糙的边缘,该规则的动机非常好并且非常有用。
这现在应该适用于 @
前缀路径,因为 https://github.com/palantir/tslint/pull/4192 已被合并。在升级之前,您可能需要使用 "app"
和 "pages"
.
我们的 tsconfig.ts
中有以下配置{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "src",
"paths": {
"@app/*": ["app/*"],
"@pages/*": ["app/pages/*"]
...
},
然后我们可以在其他 ts 文件中使用更清晰的导入,如下所示:
import {UrlConstants} from '@app/common/constants/url-constants';
检查项目时出现问题:
Module '@app/common' is not listed as dependency in package.json
有什么方法可以解决这个问题而不用回到使用 ./***/***/
导入?
您可以使用此处记录的白名单配置规则 https://palantir.github.io/tslint/rules/no-implicit-dependencies
看起来像这样:
tslint.json
{
"rules": {
"no-implicit-dependencies": [
true,
[
"app",
"pages"
],
"dev"
]
}
}
"dev" 选项并不真正适合您的场景,但如果您像我喜欢的那样检查测试,它会很有用。
就我个人而言,我认为规则应该更聪明,并尝试在某种程度上解析路径的 tsconfig。有时一个人有很多路径,并不是每个人都使用 NPM。 JSPM 用户可能不得不禁用该规则,这是一种耻辱,因为如果您不碰到这个粗糙的边缘,该规则的动机非常好并且非常有用。
这现在应该适用于 @
前缀路径,因为 https://github.com/palantir/tslint/pull/4192 已被合并。在升级之前,您可能需要使用 "app"
和 "pages"
.