Eve*_*Eve 7 node.js typescript angular
我正在使用 Angular 开发我的网站。我想BASE_API为我的项目设置一个取决于prod或dev。因此,我添加了一些代码environment
export const environment = {
production: true,
BASE_API: 'http://localhost:3000/',
};
Run Code Online (Sandbox Code Playgroud)
我想用import { environment } from '@environments/environment'导入而不是import { environment } from '../../../environments/environment';所以我设置tsconfig.app.json如下
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "es2015",
"baseUrl": "./",
"paths": {
"@angular/*": [
"../node_modules/@angular/*"
],
"@environments/*": [
"../src/environments/*"
]
}
},
}
Run Code Online (Sandbox Code Playgroud)
我的项目结构如下
src
app
environments
environment.prod.ts
environment.ts
Run Code Online (Sandbox Code Playgroud)
但是,VSCode 显示:
src/app/user/article/article.service.ts(3,29) 中的错误:错误 TS2307:找不到模块“@environments/environment”。
我该如何解决这个问题?
Sur*_*iya 10
这称为别名。别名我们的应用程序和环境文件夹将使我们能够实现干净的导入,这将在我们的整个应用程序中保持一致。
为了能够使用别名,您必须将 baseUrl 和 paths 属性添加到 tsconfig.json 文件。
因此,在您的代码中,只需将 baseUrl 更改为
src
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "es2015",
"baseUrl": "src",
"paths": {
"@app/*": ["app/*"],
"@environments/*": ["environments/*"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在您可以导入环境文件,如:
import { environment } from '@environments/environment
Run Code Online (Sandbox Code Playgroud)
小智 6
我也遇到了这个问题。有些路径甚至写出完全相同,但一条路径有效,而另一条则没有。花了几个小时研究和尝试各种不同的东西,但似乎解决方案比我想象的要容易。我唯一要做的就是重新启动 TypeScript 服务器。
A) 如果你有一个活跃的 ng serve,重启 ng serve
B) 如果您没有有效的 ng 发球,请执行以下操作:
| 归档时间: |
|
| 查看次数: |
7835 次 |
| 最近记录: |