使用tsconfig.server.json中的“paths”进行服务器端重新编译无法正常工作

时间:2018-04-12 11:10:19

标签: angular

为了避免导入文件时的相对路径,我尝试配置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';

是否可以在服务器端渲染中使用“路径”?

1 个答案:

答案 0 :(得分:1)

默认情况下,您的tsconfig.server.json扩展了tsconfig.app.json,如果您使用路径,则它们存在于tsconfig.app.json中。

您应该做的一件事是从baseUrl中删除tsconfig.server.json参数。因为在该文件中将其定义为“。” ,但是在tsconfig.json中将其定义为“ ./”