如何在角度cli生成的项目中使用绝对路径?
所以我有这条道路:src -> app -> shared
我想写import {} from 'shared/ffdsdf/my.module.ts'
而不是'../shared/ffdsdf/my.module.ts'
答案 0 :(得分:5)
有一种TypeScript功能允许这样做。
您可以修改src/tsconfig.json
文件以启用此功能,在compilerOptions
下添加以下内容:
{ "compilerOptions": { // ... "paths": { "*": [ "./*", "app/*", "../node_modules/*" ] } }
您可以根据需要更改模式键和值。您可以添加或删除文件夹,也可以更改订单等。
您也可以选择一个前缀而不仅仅是*
(特别是如果它出现问题),您可以使用~/*
之类的内容,然后您的导入将全部为from '~/shared/sample'
等。
答案 1 :(得分:1)
更好的示例:
tsconfig.json
X = seq(from=200, to=700, by=50)
mymatrix <- matrix(nrow = 11, ncol = 28)
for (i in seq_along(X)) {
for (j in seq_along(NP[,2:29])){
mymatrix[i,j] <- which.min(abs(NP[,2:29][[j]]) - i)
}
}
使用:
{
"compilerOptions": {
"baseUrl": "src",
"paths": {
"@app/*": [
"app/*"
],
"@app/core/*": [
"app/core/*"
],
"@app/shared/*": [
"app/shared/*"
],
"@env/*": [
"environments/*"
]
}
}
}
而不是:
import { someService } from "@app/core/some.service";
答案 2 :(得分:0)
在Angular9中,请遵循以下步骤。
baseUrl
中创建tsconfig.json
和路径
{
"baseUrl": "./src",
"paths": {
"@angular/*": [
"../node_modules/@angular/*"
],
"@app/*": ["app/*"],
"@views/*": ["app/views/*"],
"@containers/*": ["app/containers/*"]
}
}
注意:在这里您可以看到我还向@ tsconfig.json
添加了@angular路径分辨率。此步骤将确保VSCode显示正确的语法突出显示。
baseUrl
中删除path
和tsconfig.app.json
注意:如果不执行此步骤,则在编译角度项目时会出现模块未找到错误。 (即使没有此选项,语法高亮也可以)。