- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我使用 angular 模板
创建了一个新的 .net core 2.1
应用程序,之后我更新了项目以使用 Angular 6
.
注意项目和angular cli生成的项目几乎一样
我的项目将有很多组件和服务,所以我喜欢使用非相对路径而不是使用相对路径
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
时出现这个错误:
ERROR in app/components/home/home.component.ts(3,32): error TS2307: Cannot find module '@app-services/weather.service'.
如何解决?
注意:在 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';
不幸的是,我得到了这个错误:
Undeclared variable
当我这样导入时:
@import '_images';
但是..但是,构建后它工作正常
最佳答案
试试这个:
import { WeatherService } from '~app-services/weather.service'
而不是这个:
import { WeatherService } from '@app-services/weather.service'
关于typescript - 如何从.net core 2.1 Angular 6模板中的非相对路径导入ts和scss文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50748365/
我是一名优秀的程序员,十分优秀!