如何从.net core 2.1 Angular 6模板中的非相对路径导入ts和scss文件
Posted
技术标签:
【中文标题】如何从.net core 2.1 Angular 6模板中的非相对路径导入ts和scss文件【英文标题】:How to import ts and scss files from non-relative path in .net core 2.1 Angular 6 template 【发布时间】:2018-11-17 18:57:49 【问题描述】:我使用angular template
创建了一个新的.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
时出现此错误:
app/components/home/home.component.ts(3,32) 中的错误:错误 TS2307: 找不到模块“@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';
不幸的是,我收到了这个错误:
未声明的变量
当我这样导入时:
@import '_images';
但是..但是,构建后它可以正常工作
【问题讨论】:
【参考方案1】:试试这个:
import WeatherService from '~app-services/weather.service'
而不是这个:
import WeatherService from '@app-services/weather.service'
【讨论】:
以上是关于如何从.net core 2.1 Angular 6模板中的非相对路径导入ts和scss文件的主要内容,如果未能解决你的问题,请参考以下文章
Angular 7 with .net core 2.1 - 为特定页面启动
Angular / ASP.NET Core 2.1 CORS 问题
Angular + core 如何将文件数组从 Angular 上传到 Dot Net Core
Visual Studio 2017 .NET Core 2.1 Angular 上的“npm run build -- --prod”错误
无法将 http 请求发布到 .Net Core 2.1 Web 项目
带有 Angular 6 的 Asp.Net Core 2.1 中的 Windows 身份验证 - Chrome 连续登录提示