有了一个统一的代码库,我希望能够...
到目前为止,我已经为每个版本创建了单独的tsconfig文件。
我的主要困难是在组件中为templateUrl设置路径。
默认情况下,CLI使用templateUrl的相对路径,而JIT需要在组件上设置的moduleId才能使用相对路径。
例如
@Component({
selector: 'app-root',
moduleId : module.id,
templateUrl: './app.component.html',
styleUrls: ['./app.component.less']
})
...适用于开发模式(commonjs),但不适用于生产模式(CLI),并显示以下错误:
找不到名称“模块”。您是否需要为节点安装类型定义?尝试
npm i @types/node
。
在删除module.id时,它与CLI兼容,但与commonjs不兼容。在这种情况下,浏览器无法找到html文件,因为它正在源根中查找。
我已经尝试过了。
moduleId : environment.bundled ? undefined : (() => module.id)()
并且都因不同的原因失败了。
对于这种方法或新方法的任何建议,将不胜感激。
答案 0 :(得分:-3)
最后,我发现vsCode在这方面比tsc或CLI更严格,而我能够做到
module
src / ambient.d.ts
declare var module: {id: string};
tsconfig-cli.json
{
"compileOnSave": false,
"compilerOptions": {
...
"module": "es2015",
"moduleResolution": "node",
...
"types": [
"src/ambient.d.ts"
]
}
}
tsconfig-dev.json
{
"compilerOptions": {
...
"module": "commonjs",
"moduleResolution": "node",
...
},
...
"exclude":[
"src/main/main.ts",
"src/ambient.d.ts"
]
}