我使用.net core 2.1
创建了一个新的angular template
应用程序,此后,我更新了该项目以使用Angular 6
。
请注意,该项目与angular cli生成的项目几乎相同
我的项目将包含很多组件和服务,因此我不想使用相对路径,而是希望使用非相对路径
typescript
import { WeatherService } from '../../services/weather.service'
我希望能够使用非相对路径,例如:
import { WeatherService } from '@app-services/weather.service'
所以我加了
"baseUrl": ".",
"paths": {
"@app-services/*": [ "src/app/services/*" ]
},
进入
tsconfig.json
整个配置:
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"baseUrl": ".",
"paths": {
"@app-services/*": [ "src/app/services/*" ]
},
"lib": [
"es2017",
"dom"
]
}
}
它按预期工作,我可以在每个组件中导入服务,例如:
import { WeatherService } from '@app-services/weather.service';
但是当我运行
ng build
时出现此错误:如何解决呢?
注意:在
ClientApp/src/
中有tsconfig
文件的另一个扩展名,即tsconfig.app.json
,但是当我在其中添加非相对路径时,导入根本行不通,也不知道为什么会发生这种情况简讯
我已经安装了
node-sass
,并且将所有.css
文件都更改为.scss
,除此之外,我还添加了"stylePreprocessorOptions": {
"includePaths": [
"./src/common/"
]
里面
angular.json
在
common
文件夹中,我保留了所有全局scss文件:common
|
- _images.scss
- _colors.scss
另外,将其添加到同一文件中:
"schematics": {
"@schematics/angular:component": {
"prefix": "app",
"styleext": "scss" // <<---
}
}
它适用于相对路径:
@import '../../../common/_images.scss';
不幸的是,我得到这个错误:
当我这样导入时:
@import '_images';
但是 ..但是,在构建后它可以正常工作
最佳答案
试试这个:
import { WeatherService } from '~app-services/weather.service'
代替这个:
import { WeatherService } from '@app-services/weather.service'