为了避免导入文件时的相对路径,我尝试配置angular来理解路径。
所以我把它配置为:
//tsconfig.server.json
"compilerOptions":{
"baseUrl": ".",
"paths": {
"@env/*": ["./enviroment/*"]
...
},
}
//and in a component I use like this:
import { X } from '@env/enviroment'
运行ng服务时,一切正常。
但是在服务器端渲染的情况下,它会将错误抛出为
找不到模块'@ env / environment'。
服务器端呈现是否不支持“路径”?
PS:参考。从这里 https://github.com/angular/universal/issues/734#issuecomment-306176547
没关系,似乎问题是虽然对于客户端渲染行:
import { environment } from 'environments/environment';
效果很好,对于服务器端渲染,该行必须是:
import { environment } from '../environments/environment';
是否可以在服务器端渲染中使用“路径”?
答案 0 :(得分:1)
默认情况下,您的tsconfig.server.json
扩展了tsconfig.app.json
,如果您使用路径,则它们存在于tsconfig.app.json
中。
您应该做的一件事是从baseUrl
中删除tsconfig.server.json
参数。因为在该文件中将其定义为“。” ,但是在tsconfig.json
中将其定义为“ ./” 。