我使用.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'

09-27 21:57